GY03.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <template>
  2. <div class="form-wrap">
  3. <el-form
  4. :model="form"
  5. ref="form"
  6. :rules="rules"
  7. label-width="100px"
  8. :inline="true"
  9. size="normal"
  10. class="form-body-wrap"
  11. >
  12. <el-form-item prop="material" label="材料:">
  13. <el-select
  14. v-model="form.material"
  15. placeholder="请选择材料"
  16. clearable
  17. filterable
  18. >
  19. <el-option
  20. v-for="item in myFormData.resultMap.caiLiao"
  21. :key="item.materialId"
  22. :label="item.materialName"
  23. :value="item.materialId"
  24. >
  25. </el-option>
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item prop="technology" label="工艺:">
  29. <!-- <el-input v-model="form.yield" type="number"></el-input> -->
  30. <el-select
  31. v-model="form.technology"
  32. placeholder="请选择工艺"
  33. clearable
  34. filterable
  35. >
  36. <el-option
  37. v-for="item in myFormData.resultMap.gongyi"
  38. :key="item.id"
  39. :label="item.stepName"
  40. :value="item.id"
  41. >
  42. </el-option>
  43. </el-select>
  44. </el-form-item>
  45. <el-form-item label="生产数量" prop="productionQuantity">
  46. <el-col :span="10">
  47. <!-- <el-input
  48. onkeypress="return( /[\d]/.test(String.fromCharCode(event.keyCode)))"
  49. v-model="form.productionQuantity"
  50. placeholder="请输入生产数量"
  51. size="normal"
  52. clearable
  53. ></el-input> -->
  54. <el-input-number
  55. v-model="form.productionQuantity"
  56. controls-position="right"
  57. :min="0"
  58. />
  59. </el-col>
  60. </el-form-item>
  61. <el-form-item>
  62. <el-button type="primary" size="default" @click="submitHanfler"
  63. >确认提交</el-button
  64. >
  65. </el-form-item>
  66. <!-- <el-form-item prop="remark" label="备注信息:">
  67. <el-input v-model="form.remark"></el-input>
  68. </el-form-item> -->
  69. </el-form>
  70. </div>
  71. </template>
  72. <script>
  73. import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
  74. export default {
  75. name: "GY03",
  76. props: ["formData", "row"],
  77. components: {},
  78. data() {
  79. return {
  80. realFormData: {},
  81. form: {
  82. material: "",
  83. technology: "",
  84. productionQuantity: 0,
  85. },
  86. rules: {
  87. material: [
  88. { required: true, message: "请选择材料", trigger: "change" },
  89. ],
  90. technology: [
  91. { required: true, message: "请选择工艺", trigger: "change" },
  92. ],
  93. productionQuantity: [
  94. { required: true, message: "请输入生产数量", trigger: "change" },
  95. ],
  96. },
  97. };
  98. },
  99. watch: {
  100. myFormData: {
  101. handler(nval) {
  102. this.realFormData = nval;
  103. },
  104. deep: true,
  105. immediate: true,
  106. },
  107. },
  108. computed: {
  109. myFormData() {
  110. return this.formData;
  111. },
  112. isEdit() {
  113. return this.formData.resultMap?.id ? true : false;
  114. },
  115. },
  116. methods: {
  117. async getFormData() {
  118. let res = {
  119. flag: false,
  120. msg: "",
  121. };
  122. try {
  123. let valid = await this.$refs.form.validate();
  124. if (valid) {
  125. res.flag = true;
  126. res.data = this.form;
  127. return res;
  128. } else {
  129. res.msg = "表单校验异常,请规范填写表单数据";
  130. return res;
  131. }
  132. } catch (error) {
  133. // console.log(error);
  134. res.msg = "表单校验异常,请规范填写表单数据";
  135. return res;
  136. }
  137. },
  138. resetForm() {
  139. this.$refs.form.resetFields();
  140. },
  141. async submitHanfler() {
  142. let res = await this.$refs.form?.validate();
  143. if (res) {
  144. let payLoad = {};
  145. let { material, technology, productionQuantity } = this.form;
  146. if (this.isEdit) {
  147. payLoad.updateCommonEntityList = [
  148. {
  149. basicMap: {
  150. tableName: "productionrecords",
  151. },
  152. addListMap: [
  153. {
  154. material_information: material,
  155. process_information: technology,
  156. actual_quantity: productionQuantity,
  157. taskKey: this.row.benTaskProcessKey,
  158. taskNodeKey: this.row.benTaskNodeKey,
  159. },
  160. ],
  161. },
  162. ];
  163. } else {
  164. payLoad.insertCommonEntityList = [
  165. {
  166. basicMap: {
  167. tableName: "productionrecords",
  168. },
  169. addListMap: [
  170. {
  171. material_information: material,
  172. process_information: technology,
  173. actual_quantity: productionQuantity,
  174. taskKey: this.row.benTaskProcessKey,
  175. taskNodeKey: this.row.benTaskNodeKey,
  176. },
  177. ],
  178. },
  179. ];
  180. }
  181. submitNodeForm(payLoad).then((response) => {
  182. if (response.code == 200) {
  183. this.$modal.msgSuccess("保存成功");
  184. } else {
  185. this.$modal.msgSuccess("保存失败,请稍后再试");
  186. }
  187. });
  188. }
  189. },
  190. },
  191. mounted() {
  192. this.resetForm();
  193. },
  194. };
  195. </script>
  196. <style scoped lang="scss">
  197. .form-body-wrap {
  198. display: flex;
  199. flex-direction: column;
  200. align-items: center;
  201. }
  202. </style>