addEdit.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <template>
  2. <el-form
  3. :model="ruleForm"
  4. status-icon
  5. :rules="rulesThis"
  6. ref="ruleForm"
  7. label-width="110px"
  8. class="demo-ruleForm"
  9. >
  10. <!-- <p>采购工差单详情数据{{ sitem }}</p> -->
  11. <p>id{{ id }}</p>
  12. <el-form-item label="采购单信息">
  13. <!-- <purchase-order-addEdit
  14. style="padding: 0 0 20px 0"
  15. :newTime="newTime"
  16. v-if="newTime !== ''"
  17. :sitem="sitem"
  18. :id="queryId"
  19. @refresh="initData()"
  20. /> -->
  21. </el-form-item>
  22. <el-form-item label="采购单编号" prop="loginName">
  23. <el-input v-model="ruleForm.cgdNo" disabled></el-input>
  24. </el-form-item>
  25. <el-form-item label="商品分类" prop="loginName">
  26. <el-input v-model="ruleForm.loginName" disabled></el-input>
  27. </el-form-item>
  28. <el-form-item label="商品名称" prop="loginName">
  29. <el-input v-model="ruleForm.loginName" disabled></el-input>
  30. </el-form-item>
  31. <el-form-item label="商品总克重" prop="loginName">
  32. <el-input v-model="ruleForm.loginName" disabled></el-input>
  33. </el-form-item>
  34. <el-form-item label="工差总克重" prop="loginName">
  35. <el-input v-model="ruleForm.num" :disabled="isDetail"></el-input>
  36. </el-form-item>
  37. </el-form>
  38. </template>
  39. <script>
  40. // import purchaseOrderAddEdit from "@/views/purchaseIn/components/purchase-order-addEdit";
  41. import asyncRequest from "@/apis/service/purchaseIn/purchaseDiffOrder";
  42. import resToken from "@/mixins/resToken";
  43. import {
  44. isnumber,
  45. isMobile,
  46. validEmail,
  47. isAlphanumeric,
  48. isChinese,
  49. isEmoticon,
  50. validAlphabets,
  51. } from "@/utils/validate";
  52. export default {
  53. name: "purchaseDiffOrder",
  54. props: ["showModel", "id", "isDetail", "sitem"],
  55. mixins: [resToken],
  56. components: {
  57. // purchaseOrderAddEdit,
  58. },
  59. data() {
  60. return {
  61. loading: false,
  62. showModelThis: this.showModel,
  63. ruleForm: {
  64. cgdNo: "", //采购单编号
  65. // --
  66. num: "",
  67. loginName: "",
  68. },
  69. rulesThis: this.rules,
  70. rules: {
  71. num: [
  72. {
  73. required: true,
  74. trigger: "blur",
  75. },
  76. ],
  77. },
  78. };
  79. },
  80. watch: {
  81. showModel: function (val) {
  82. this.showModelThis = val;
  83. if (val) {
  84. this.initForm();
  85. }
  86. },
  87. showModelThis(val) {
  88. if (!val) {
  89. this.$emit("cancel");
  90. }
  91. },
  92. },
  93. mounted() {
  94. this.initForm();
  95. },
  96. methods: {
  97. closeModel() {
  98. console.log("closeModel!!");
  99. },
  100. async initForm() {
  101. this.loading = true;
  102. // await this.getRole();
  103. if (this.id === "add") {
  104. this.title = "添加账号";
  105. this.rulesThis = this.rules;
  106. await this.resetForm();
  107. } else {
  108. if (this.isDetail) {
  109. this.title = "账号详情";
  110. this.rulesThis = {};
  111. } else {
  112. this.title = "修改账号";
  113. this.rulesThis = this.rules;
  114. }
  115. await this.resetForm(this.sitem);
  116. await this.initData();
  117. }
  118. this.loading = false;
  119. },
  120. async initData() {
  121. const res = await asyncRequest.detail({ id: this.id });
  122. if (res && res.code === 0 && res.data) {
  123. this.ruleForm = res.data;
  124. this.ruleForm.role_id = this.ruleForm.role;
  125. } else if (res && res.code >= 100 && res.code <= 104) {
  126. await this.logout();
  127. } else {
  128. this.$message.warning(res.message);
  129. }
  130. },
  131. async resetForm(sitem) {
  132. // 重置
  133. await this.$nextTick(() => {
  134. if (this.$refs.ruleForm) {
  135. this.$refs.ruleForm.resetFields();
  136. this.$refs.ruleForm.clearValidate();
  137. const { loginName, num } = sitem;
  138. this.ruleForm = {
  139. loginName: loginName || "", // 账号
  140. num: num || "",
  141. };
  142. }
  143. });
  144. },
  145. async submitForm() {
  146. await this.$refs.ruleForm.validate(async (valid) => {
  147. if (valid) {
  148. this.loading = true;
  149. const { username, name, mobile, email, role_id, status } = JSON.parse(
  150. JSON.stringify(this.ruleForm)
  151. );
  152. const model = {
  153. id: this.id,
  154. username: username || "", // 账号
  155. nickname: name || "", // 真实姓名
  156. mobile: mobile || "",
  157. email: email || "",
  158. role: role_id || "",
  159. status: status || "",
  160. };
  161. let res = {};
  162. if (this.id === "add") {
  163. delete model["id"];
  164. res = await asyncRequest.add(model);
  165. } else {
  166. res = await asyncRequest.update(model);
  167. }
  168. this.loading = false;
  169. if (res && res.code === 0) {
  170. const title = this.id === "add" ? "添加成功" : "修改成功";
  171. this.$notify.success({
  172. title,
  173. message: "",
  174. });
  175. this.showModelThis = false;
  176. // 刷新
  177. this.$emit("refresh");
  178. } else if (res && res.code >= 100 && res.code <= 104) {
  179. await this.logout();
  180. } else {
  181. this.$message.warning(res.message);
  182. }
  183. } else {
  184. console.log("error submit!!");
  185. return false;
  186. }
  187. });
  188. },
  189. },
  190. };
  191. </script>
  192. <style lang="scss" scoped>
  193. .purchaseDiffOrder {
  194. }
  195. </style>