user-edit.vue 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <!-- 用户编辑弹窗 -->
  2. <template>
  3. <ele-modal width="1060px" :visible="visible" :append-to-body="true" :close-on-click-modal="true"
  4. custom-class="ele-dialog-form" :title="isUpdate ? '修改工艺路线' : '添加工艺路线'" @update:visible="updateVisible">
  5. <header-title title="基本信息"> </header-title>
  6. <el-form ref="form" :model="form" :rules="rules" label-width="140px">
  7. <el-row>
  8. <el-col :span="8">
  9. <el-form-item label="工艺路线组编码:" prop="code">
  10. <el-input clearable disabled v-model="form.code" placeholder="请输入" />
  11. </el-form-item>
  12. </el-col>
  13. <el-col :span="8">
  14. <el-form-item label="工艺路线组名称:" prop="name">
  15. <el-input v-model="form.name" :disabled="isUpdate" clearable placeholder="请输入" />
  16. </el-form-item>
  17. </el-col>
  18. <el-col :span="8">
  19. <el-form-item label="所属工厂:" prop="factoryId">
  20. <el-select v-model="form.factoryId" placeholder="请选择" filterable :disabled="isUpdate">
  21. <el-option v-for="item in fList" :key="item.id" :label="item.name" :value="item.id">
  22. </el-option>
  23. </el-select>
  24. </el-form-item>
  25. </el-col>
  26. <el-col :span="8">
  27. <el-form-item label="生产版本:" prop="produceVersionId" :disabled="isUpdate">
  28. <el-select v-model="form.produceVersionId" filterable placeholder="请选择" :style="{ width: '100%' }">
  29. <el-option v-for="item in versionList" :key="item.code" :label="item.code + '-' + item.name"
  30. :value="item.id">
  31. </el-option>
  32. </el-select>
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="8">
  36. <el-form-item label="工艺路线版本:" prop="version">
  37. <el-input disabled v-model="form.version" />
  38. </el-form-item>
  39. </el-col>
  40. <el-col :span="8">
  41. <el-form-item label="状态:" prop="status">
  42. <el-select v-model="form.status" placeholder="" filterable >
  43. <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value">
  44. </el-option>
  45. </el-select>
  46. </el-form-item>
  47. </el-col>
  48. </el-row>
  49. </el-form>
  50. <user-taskinstance v-if="step == 2" :isEdit="isUpdate" :taskInfo="form" @refresh="refresh" />
  51. <template v-slot:footer>
  52. <el-button type="primary" v-if="step == 1" :loading="loading" @click="save">
  53. 确定
  54. </el-button>
  55. </template>
  56. </ele-modal>
  57. </template>
  58. <script>
  59. import route from '@/api/technology/route';
  60. import { pageList } from '@/api/technology/version/version.js';
  61. import UserTaskinstance from './user-taskinstance.vue';
  62. export default {
  63. components: {
  64. UserTaskinstance
  65. },
  66. props: {
  67. // 弹窗是否打开
  68. visible: Boolean,
  69. // 修改回显的数据
  70. data: Object
  71. },
  72. data() {
  73. const defaultForm = {
  74. code: '',
  75. name: '',
  76. factoryId: '',
  77. status: -1,
  78. categoryId: '',
  79. version: '1.0',
  80. id: '',
  81. };
  82. return {
  83. defaultForm,
  84. fList: [], //仓库列表
  85. // 表单数据
  86. form: { ...defaultForm },
  87. statusList: [
  88. { label: '草稿', value: -1 },
  89. { label: '失效', value: 0 },
  90. { label: '生效', value: 1 }
  91. ],
  92. // 表单验证规则
  93. rules: {
  94. name: [
  95. { required: true, message: '请输入工艺路线名称', trigger: 'blur' }
  96. ],
  97. code: [
  98. { required: true, message: '请输入工艺路线编码', trigger: 'blur' }
  99. ],
  100. factoryId: [
  101. { required: true, message: '请输入工艺路线', trigger: 'blur' }
  102. ],
  103. status: [
  104. { required: true, message: '请输入工艺路线版本', trigger: 'blur' }
  105. ],
  106. version: [
  107. { required: true, message: '请输入工艺路线版本', trigger: 'blur' }
  108. ],
  109. produceVersionId: [
  110. { required: true, message: '请输入生产版本', trigger: 'blur' }
  111. ]
  112. },
  113. versionList: [],
  114. // 提交状态
  115. loading: false,
  116. // 是否是修改
  117. isUpdate: false,
  118. step: 1,
  119. };
  120. },
  121. computed: {
  122. statusTitle() {
  123. return this.isUpdate ? '修改' : '保存';
  124. },
  125. // 是否开启响应式布局
  126. styleResponsive() {
  127. return this.$store.state.theme.styleResponsive;
  128. }
  129. },
  130. methods: {
  131. /* 保存编辑 */
  132. save() {
  133. this.$refs.form.validate((valid) => {
  134. if (!valid) {
  135. return false;
  136. }
  137. if (!this.data) {
  138. delete this.form.id;
  139. }
  140. this.loading = true;
  141. route
  142. .save(this.form)
  143. .then((data) => {
  144. if (!this.isUpdate) {
  145. this.form.id = data
  146. this.step = 2
  147. }
  148. this.loading = false;
  149. this.$message.success('操作成功');
  150. })
  151. .catch((e) => {
  152. this.loading = false;
  153. // this.$message.error(e.message);
  154. });
  155. });
  156. },
  157. async getVersionList() {
  158. const res = await pageList({
  159. pageNum: 1,
  160. size: 100
  161. });
  162. this.versionList = res.list;
  163. },
  164. /* 更新visible */
  165. updateVisible(value) {
  166. this.$emit('update:visible', value);
  167. },
  168. refresh() {
  169. this.updateVisible(false)
  170. this.$emit('done')
  171. },
  172. },
  173. watch: {
  174. async visible(visible) {
  175. if (visible) {
  176. this.step = 1
  177. this.getVersionList()
  178. const res = await route.Flist({
  179. pageNum: 1,
  180. size: -1,
  181. type: 1
  182. });
  183. this.fList = res.list;
  184. if (this.data) {
  185. const res = await route.getById(this.data.id);
  186. this.$util.assignObject(this.form, {
  187. ...res
  188. });
  189. this.step = 2
  190. this.isUpdate = true;
  191. } else {
  192. const res = await route.getCode();
  193. this.form.code = res;
  194. this.step = 1
  195. this.isUpdate = false;
  196. }
  197. } else {
  198. this.$refs.form.clearValidate();
  199. this.form = { ...this.defaultForm };
  200. }
  201. }
  202. }
  203. };
  204. </script>