user-detail.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <!-- 用户编辑弹窗 -->
  2. <template>
  3. <ele-modal width="1060px" :visible="visible" :append-to-body="true" :close-on-click-modal="false"
  4. custom-class="ele-dialog-form" title="修改工艺详情" @update:visible="updateVisible" :maxable="true">
  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. {{ form.code }}
  11. </el-form-item>
  12. </el-col>
  13. <el-col :span="8">
  14. <el-form-item label="工艺路线组名称:" prop="name">
  15. {{ form.name }}
  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>
  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">
  28. <el-select v-model="form.produceVersionId" filterable placeholder="请选择" :style="{ width: '100%' }"
  29. disabled>
  30. <el-option v-for="item in versionList" :key="item.code" :label="item.code + '-' + item.name"
  31. :value="item.id">
  32. </el-option>
  33. </el-select>
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="8">
  37. <el-form-item label="工艺路线版本:" prop="version">
  38. {{ form.version }}
  39. </el-form-item>
  40. </el-col>
  41. <el-col :span="8">
  42. <el-form-item label="状态:" prop="status">
  43. <el-select v-model="form.status" placeholder="" filterable disabled>
  44. <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value">
  45. </el-option>
  46. </el-select>
  47. </el-form-item>
  48. </el-col>
  49. </el-row>
  50. </el-form>
  51. <ele-pro-table ref="table" :needPage="false" :columns="columns" :datasource="datasource" row-key="id">
  52. <template v-slot:orderNum="{ row }">
  53. {{ row.orderNum }}
  54. </template>
  55. </ele-pro-table>
  56. <template v-slot:footer>
  57. <el-button type="primary" @click="save">
  58. 确定
  59. </el-button>
  60. </template>
  61. </ele-modal>
  62. </template>
  63. <script>
  64. import route from '@/api/technology/route';
  65. import { pageList } from '@/api/technology/version/version.js';
  66. export default {
  67. components: {
  68. },
  69. props: {
  70. // 弹窗是否打开
  71. visible: Boolean,
  72. // 修改回显的数据
  73. data: Object
  74. },
  75. data() {
  76. const defaultForm = {
  77. code: '',
  78. name: '',
  79. factoryId: '',
  80. status: -1,
  81. categoryId: '',
  82. produceVersionId: '',
  83. version: '1.0',
  84. id: '',
  85. };
  86. return {
  87. defaultForm,
  88. fList: [], //仓库列表
  89. // 表单数据
  90. form: { ...defaultForm },
  91. statusList: [
  92. { label: '草稿', value: -1 },
  93. { label: '失效', value: 0 },
  94. { label: '生效', value: 1 }
  95. ],
  96. // 表单验证规则
  97. rules: {
  98. },
  99. versionList: [],
  100. // 提交状态
  101. loading: false,
  102. // 是否是修改
  103. isUpdate: false,
  104. columns: [
  105. {
  106. prop: 'orderNum',
  107. label: '排序',
  108. align: 'center',
  109. slot: 'orderNum',
  110. minWidth: 120
  111. },
  112. {
  113. prop: 'code',
  114. label: '工序编码',
  115. // sortable: 'custom',
  116. showOverflowTooltip: true,
  117. align: 'center',
  118. minWidth: 110
  119. },
  120. {
  121. prop: 'name',
  122. label: '工序名称',
  123. showOverflowTooltip: true,
  124. align: 'center',
  125. minWidth: 110
  126. },
  127. {
  128. align: 'center',
  129. prop: 'controlName',
  130. label: '工序控制码',
  131. showOverflowTooltip: true,
  132. minWidth: 110
  133. },
  134. {
  135. prop: 'workCenterName',
  136. label: '所属工作中心',
  137. align: 'center',
  138. showOverflowTooltip: true,
  139. minWidth: 110
  140. },
  141. ],
  142. };
  143. },
  144. computed: {
  145. // 是否开启响应式布局
  146. styleResponsive() {
  147. return this.$store.state.theme.styleResponsive;
  148. }
  149. },
  150. methods: {
  151. /* 表格数据源 */
  152. async datasource(id) {
  153. console.log(111111);
  154. if (this.data.id) {
  155. const res = await route.taskinstanceList({
  156. routingId: this.data.id,
  157. isDetail: true,
  158. pageNum: 1,
  159. size: -1
  160. });
  161. let arr = res.list.map((it) => {
  162. it.detail.orderNum = it.orderNum
  163. return it.detail
  164. });
  165. return {
  166. list: arr,
  167. };
  168. }
  169. },
  170. /* 保存编辑 */
  171. save() {
  172. this.$emit('close')
  173. },
  174. async getVersionList() {
  175. const res = await pageList({
  176. pageNum: 1,
  177. size: 100
  178. });
  179. this.versionList = res.list;
  180. },
  181. /* 更新visible */
  182. updateVisible(value) {
  183. this.$emit('update:visible', value);
  184. },
  185. },
  186. watch: {
  187. async visible(visible) {
  188. if (visible) {
  189. this.datasource();
  190. this.getVersionList()
  191. const res = await route.Flist({
  192. pageNum: 1,
  193. size: -1,
  194. type: 1
  195. });
  196. this.fList = res.list;
  197. if (this.data) {
  198. const res = await route.getById(this.data.id);
  199. this.$util.assignObject(this.form, {
  200. ...res
  201. });
  202. this.isUpdate = true;
  203. }
  204. } else {
  205. this.$refs.form.clearValidate();
  206. this.form = { ...this.defaultForm };
  207. }
  208. }
  209. }
  210. };
  211. </script>