unpackDialog.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <template>
  2. <ele-modal
  3. width="60vw"
  4. :visible.sync="visible"
  5. :close-on-click-modal="true"
  6. custom-class="ele-dialog-form"
  7. :title="'拆分工单'"
  8. >
  9. <div class="form-wrapper">
  10. <el-form
  11. :model="requestData"
  12. label-width="0"
  13. :show-message="false"
  14. ref="formRef"
  15. >
  16. <el-descriptions title="" :column="2" border>
  17. <el-descriptions-item label="工单号">
  18. {{ formData.code }}</el-descriptions-item
  19. >
  20. <el-descriptions-item label="产品编码">
  21. {{ formData.productCode }}</el-descriptions-item
  22. >
  23. <el-descriptions-item label="产品名称">{{
  24. formData.productName
  25. }}</el-descriptions-item>
  26. <el-descriptions-item label="牌号|型号">
  27. {{ formData.brandNo }}|{{ formData.model }}</el-descriptions-item
  28. >
  29. <el-descriptions-item label="要求成型数量">{{
  30. formData.formingNum
  31. }}</el-descriptions-item>
  32. <el-descriptions-item label="计划开始时间">{{
  33. formData.planStartTime
  34. }}</el-descriptions-item>
  35. <el-descriptions-item
  36. label="成型数量"
  37. label-class-name="produce-create-bg"
  38. content-class-name="produce-create-bg"
  39. >
  40. <span slot="label" class="label-required">成型数量</span>
  41. <el-form-item prop="formingNum" required>
  42. <el-input v-model="requestData.formingNum"></el-input>
  43. </el-form-item>
  44. </el-descriptions-item>
  45. <el-descriptions-item
  46. label="计划开始时间"
  47. label-class-name="produce-create-bg"
  48. content-class-name="produce-create-bg"
  49. >
  50. <span slot="label" class="label-required">计划开始时间</span>
  51. <el-form-item prop="planStartTime" required class="w100">
  52. <el-date-picker
  53. class="w100"
  54. v-model="requestData.planStartTime"
  55. type="date"
  56. value-format="yyyy-MM-dd"
  57. ></el-date-picker> </el-form-item
  58. ></el-descriptions-item>
  59. <el-descriptions-item
  60. label="设备编码/名称"
  61. label-class-name="produce-create-bg"
  62. content-class-name="produce-create-bg"
  63. >
  64. <span slot="label" class="label-required">设备编码/名称</span>
  65. <el-form-item prop="deviceName" required
  66. ><el-input
  67. @click.native="getEquip"
  68. :value="
  69. requestData.deviceName &&
  70. `${requestData.deviceName}(${requestData.deviceCode})`
  71. "
  72. ></el-input> </el-form-item
  73. ></el-descriptions-item>
  74. </el-descriptions>
  75. </el-form>
  76. </div>
  77. <div slot="footer">
  78. <el-button plain @click="cancel">取消</el-button>
  79. <el-button type="primary" @click="confirm">确定</el-button>
  80. </div>
  81. <equipmentDailog
  82. ref="equipmentDailogRef"
  83. :produceVersionId="produceVersionId"
  84. />
  85. </ele-modal>
  86. </template>
  87. <script>
  88. import { save, update } from '@/api/produceOrder/index.js';
  89. import equipmentDailog from '@/components/EquipmentDailog/equipment-dailog';
  90. export default {
  91. components: { equipmentDailog },
  92. data () {
  93. return {
  94. visible: false,
  95. produceVersionId: '',
  96. formData: {},
  97. requestData:{}
  98. };
  99. },
  100. methods: {
  101. open (row) {
  102. this.visible = true;
  103. this.formData = row
  104. this.produceVersionId = row.produceVersionId
  105. if(row.planStartTime){
  106. this.requestData.planStartTime = row.planStartTime
  107. }
  108. },
  109. // codeChoose () {
  110. // this.$refs.apsPlanOrderRef.open(this.formData.productCode, (res) => {
  111. // if (this.formData.productCode != res.productCode) {
  112. // this.formData.deviceCode = '';
  113. // this.formData.deviceName = '';
  114. // this.formData.deviceId = '';
  115. // }
  116. // this.formData.productionPlanCode = res.code;
  117. // this.formData.productionPlanId = res.id;
  118. // this.formData.productCode = res.productCode;
  119. // this.formData.productName = res.productName;
  120. // this.formData.brandNo = res.brandNo;
  121. // this.formData.model = res.model;
  122. // this.formData.productNum = res.productNum;
  123. // this.formData.requiredFormingNum = res.requiredFormingNum;
  124. // this.produceVersionId = res.produceVersionId;
  125. // });
  126. // },
  127. getEquip () {
  128. // if (!this.produceVersionId) {
  129. // return this.$message.error('请先选择计划');
  130. // }
  131. this.$refs.equipmentDailogRef.openSingle(
  132. [this.requestData.deviceCode],
  133. (res) => {
  134. this.requestData.deviceCode = res.code;
  135. this.requestData.deviceName = res.name;
  136. this.requestData.deviceId = res.id;
  137. }
  138. );
  139. },
  140. cancel () {
  141. this.formData = {};
  142. this.requestData = {};
  143. this.visible = false;
  144. },
  145. confirm () {
  146. this.$refs.formRef.validate(async (value) => {
  147. if (value) {
  148. const res = await save(this.requestData);
  149. this.$message.success('操作成功!');
  150. this.$emit('success');
  151. this.cancel();
  152. }
  153. });
  154. }
  155. }
  156. };
  157. </script>
  158. <style lang="scss" scoped>
  159. .label-required {
  160. &::after {
  161. content: '*';
  162. color: var(--color-danger);
  163. font-size: 1.2em;
  164. }
  165. }
  166. .form-wrapper {
  167. :deep(.el-form) {
  168. .el-form-item {
  169. margin-bottom: 0 !important;
  170. }
  171. }
  172. }
  173. </style>
  174. <style lang="scss">
  175. .produce-create-bg {
  176. background-color: var(--color-primary) !important;
  177. color: #fff !important;
  178. }
  179. </style>