businessOut-detail.vue 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. <style scoped>
  2. .user-panel {
  3. margin: 10px auto;
  4. }
  5. </style>
  6. <template>
  7. <el-dialog
  8. :visible.sync="showDialog"
  9. :title="title"
  10. :modal-append-to-body="false"
  11. style="text-align: left"
  12. @close="closeDialog"
  13. :close-on-click-modal="false"
  14. >
  15. <div class="user-panel" v-loading="loading">
  16. <el-form
  17. ref="form"
  18. :model="formModel"
  19. :rules="ruleValidate"
  20. :label-width="'100px'"
  21. >
  22. <el-form-item label="" prop="id">
  23. <el-input
  24. v-model="formModel.id"
  25. placeholder="请输入"
  26. style="width: 300px"
  27. ></el-input>
  28. </el-form-item>
  29. <el-form-item label="人员id" prop="personPopedomId">
  30. <el-input
  31. v-model="formModel.personPopedomId"
  32. placeholder="请输入人员id"
  33. style="width: 300px"
  34. ></el-input>
  35. </el-form-item>
  36. <el-form-item label="类型(1:外出,3:出差)" prop="type">
  37. <el-input
  38. v-model="formModel.type"
  39. placeholder="请输入类型(1:外出,3:出差)"
  40. style="width: 300px"
  41. ></el-input>
  42. </el-form-item>
  43. <el-form-item label="目的地" prop="destination">
  44. <el-input
  45. v-model="formModel.destination"
  46. placeholder="请输入目的地"
  47. style="width: 300px"
  48. ></el-input>
  49. </el-form-item>
  50. <el-form-item label="开始时间" prop="startTime">
  51. <el-input
  52. v-model="formModel.startTime"
  53. placeholder="请输入开始时间"
  54. style="width: 300px"
  55. ></el-input>
  56. </el-form-item>
  57. <el-form-item label="预估天数" prop="estimatedTime">
  58. <el-input
  59. v-model="formModel.estimatedTime"
  60. placeholder="请输入预估天数"
  61. style="width: 300px"
  62. ></el-input>
  63. </el-form-item>
  64. <el-form-item label="内容" prop="content">
  65. <el-input
  66. v-model="formModel.content"
  67. placeholder="请输入内容"
  68. style="width: 300px"
  69. ></el-input>
  70. </el-form-item>
  71. <el-form-item label="审批人id" prop="approvalPersonId">
  72. <el-input
  73. v-model="formModel.approvalPersonId"
  74. placeholder="请输入审批人id"
  75. style="width: 300px"
  76. ></el-input>
  77. </el-form-item>
  78. <el-form-item
  79. label="审批状态: 0:待处理,1:同意,2:拒绝"
  80. prop="status"
  81. >
  82. <el-input
  83. v-model="formModel.status"
  84. placeholder="请输入审批状态: 0:待处理,1:同意,2:拒绝"
  85. style="width: 300px"
  86. ></el-input>
  87. </el-form-item>
  88. <el-form-item label="审批编号" prop="approvalNo">
  89. <el-input
  90. v-model="formModel.approvalNo"
  91. placeholder="请输入审批编号"
  92. style="width: 300px"
  93. ></el-input>
  94. </el-form-item>
  95. <el-form-item label="审核时间" prop="approvalTime">
  96. <el-input
  97. v-model="formModel.approvalTime"
  98. placeholder="请输入审核时间"
  99. style="width: 300px"
  100. ></el-input>
  101. </el-form-item>
  102. <el-form-item label="审核意见" prop="approvalContent">
  103. <el-input
  104. v-model="formModel.approvalContent"
  105. placeholder="请输入审核意见"
  106. style="width: 300px"
  107. ></el-input>
  108. </el-form-item>
  109. <el-form-item
  110. label="审批人id(包含历史记录)"
  111. prop="approvalPersonIdStr"
  112. >
  113. <el-input
  114. v-model="formModel.approvalPersonIdStr"
  115. placeholder="请输入审批人id(包含历史记录)"
  116. style="width: 300px"
  117. ></el-input>
  118. </el-form-item>
  119. <el-form-item label="审批编号(包含历史记录)" prop="approvalNoStr">
  120. <el-input
  121. v-model="formModel.approvalNoStr"
  122. placeholder="请输入审批编号(包含历史记录)"
  123. style="width: 300px"
  124. ></el-input>
  125. </el-form-item>
  126. <el-form-item label="审核时间(包含历史记录)" prop="approvalTimeStr">
  127. <el-input
  128. v-model="formModel.approvalTimeStr"
  129. placeholder="请输入审核时间(包含历史记录)"
  130. style="width: 300px"
  131. ></el-input>
  132. </el-form-item>
  133. <el-form-item
  134. label="审核意见(包含历史记录)"
  135. prop="approvalContentStr"
  136. >
  137. <el-input
  138. v-model="formModel.approvalContentStr"
  139. placeholder="请输入审核意见(包含历史记录)"
  140. style="width: 300px"
  141. ></el-input>
  142. </el-form-item>
  143. </el-form>
  144. </div>
  145. <span slot="footer" class="dialog-footer">
  146. <el-button @click="closeDialog">取 消</el-button>
  147. <el-button type="primary" @click="handleSubmit" :loading="submitting"
  148. >确 定</el-button
  149. >
  150. </span>
  151. </el-dialog>
  152. </template>
  153. <script>
  154. import Constant from "@/constant";
  155. import businessOutApi from "@/api/base/businessOut";
  156. export default {
  157. props: ["businessKey", "title"],
  158. data() {
  159. return {
  160. formModel: {},
  161. ruleValidate: {
  162. id: [{ required: true, message: "不能为空", trigger: "blur" }],
  163. personPopedomId: [
  164. { required: true, message: "人员id不能为空", trigger: "blur" },
  165. ],
  166. type: [
  167. {
  168. required: true,
  169. message: "类型(1:外出,3:出差)不能为空",
  170. trigger: "blur",
  171. },
  172. ],
  173. destination: [
  174. { required: true, message: "目的地不能为空", trigger: "blur" },
  175. ],
  176. startTime: [
  177. { required: true, message: "开始时间不能为空", trigger: "blur" },
  178. ],
  179. estimatedTime: [
  180. { required: true, message: "预估天数不能为空", trigger: "blur" },
  181. ],
  182. content: [{ required: true, message: "内容不能为空", trigger: "blur" }],
  183. approvalPersonId: [
  184. { required: true, message: "审批人id不能为空", trigger: "blur" },
  185. ],
  186. status: [
  187. {
  188. required: true,
  189. message: "审批状态: 0:待处理,1:同意,2:拒绝不能为空",
  190. trigger: "blur",
  191. },
  192. ],
  193. approvalNo: [
  194. { required: true, message: "审批编号不能为空", trigger: "blur" },
  195. ],
  196. approvalTime: [
  197. { required: true, message: "审核时间不能为空", trigger: "blur" },
  198. ],
  199. approvalContent: [
  200. { required: true, message: "审核意见不能为空", trigger: "blur" },
  201. ],
  202. approvalPersonIdStr: [
  203. {
  204. required: true,
  205. message: "审批人id(包含历史记录)不能为空",
  206. trigger: "blur",
  207. },
  208. ],
  209. approvalNoStr: [
  210. {
  211. required: true,
  212. message: "审批编号(包含历史记录)不能为空",
  213. trigger: "blur",
  214. },
  215. ],
  216. approvalTimeStr: [
  217. {
  218. required: true,
  219. message: "审核时间(包含历史记录)不能为空",
  220. trigger: "blur",
  221. },
  222. ],
  223. approvalContentStr: [
  224. {
  225. required: true,
  226. message: "审核意见(包含历史记录)不能为空",
  227. trigger: "blur",
  228. },
  229. ],
  230. },
  231. showDialog: true,
  232. loading: false,
  233. submitting: false,
  234. };
  235. },
  236. methods: {
  237. closeDialog() {
  238. this.$emit("close", false);
  239. },
  240. handleSubmit() {
  241. var self = this;
  242. this.$refs["form"].validate((valid) => {
  243. if (valid) {
  244. (function () {
  245. var id = self.formModel.id;
  246. if (id == null || id.length == 0) {
  247. return businessOutApi.add(self.formModel);
  248. } else {
  249. return businessOutApi.update(self.formModel);
  250. }
  251. })().then(function (response) {
  252. var jsonData = response.data;
  253. if (jsonData.result) {
  254. self.$message({
  255. message: "保存成功!",
  256. type: "success",
  257. });
  258. self.$emit("close", true);
  259. } else {
  260. self.$message({
  261. message: jsonData.message + "",
  262. type: "warning",
  263. });
  264. self.$emit("close", false);
  265. }
  266. });
  267. }
  268. });
  269. },
  270. },
  271. mounted: function () {
  272. var self = this;
  273. (function () {
  274. if (self.businessKey.length == 0) {
  275. return businessOutApi.create();
  276. } else {
  277. return businessOutApi.edit(self.businessKey);
  278. }
  279. })()
  280. .then((response) => {
  281. var jsonData = response.data;
  282. self.loading = false;
  283. if (jsonData.result) {
  284. self.formModel = jsonData.data;
  285. } else {
  286. self.$message.error(jsonData.message + "");
  287. }
  288. })
  289. .catch((error) => {
  290. self.$message.error(error + "");
  291. });
  292. },
  293. };
  294. </script>