ArriveGoodsFormForm.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644
  1. <template>
  2. <a-spin :spinning="loading">
  3. <JFormContainer :disabled="disabled">
  4. <template #detail>
  5. <a-form v-bind="formItemLayout" name="ArriveGoodsForm" ref="formRef">
  6. <a-row>
  7. <a-col :span="12">
  8. <a-form-item label="到货单号(bill code)" v-bind="validateInfos.billCode" id="ArriveGoodsForm-billCode" name="billCode">
  9. <a-input v-model:value="formData.billCode" placeholder="自动生成" disabled />
  10. </a-form-item>
  11. </a-col>
  12. <a-col :span="12">
  13. <a-form-item
  14. label="到货日期(arrival date)"
  15. v-bind="validateInfos.arrivalDate"
  16. :label-col="formItemLayout.labelCol1"
  17. :wrapper-col="formItemLayout.wrapperCol1"
  18. id="ArriveGoodsForm-arrivalDate"
  19. name="arrivalDate"
  20. >
  21. <a-date-picker
  22. placeholder="请选择到货日期(arrival date)"
  23. v-model:value="formData.arrivalDate"
  24. value-format="YYYY-MM-DD"
  25. style="width: 100%"
  26. allow-clear
  27. />
  28. </a-form-item>
  29. </a-col>
  30. <a-col :span="12">
  31. <a-form-item label="项目(project)" v-bind="validateInfos.projectName" id="ArriveGoodsForm-projectName" name="projectName">
  32. <a-input-search
  33. v-model:value="formData.projectName"
  34. placeholder="请输入项目(project)"
  35. readOnly
  36. :disabled="notAllowEdit"
  37. AutoComplete="off"
  38. allow-clear
  39. enter-button="Search"
  40. @search="onSearchProject"
  41. />
  42. </a-form-item>
  43. </a-col>
  44. <a-col :span="12">
  45. <a-form-item
  46. label="供应商(supplier)"
  47. v-bind="validateInfos.supplier"
  48. :label-col="formItemLayout.labelCol1"
  49. :wrapper-col="formItemLayout.wrapperCol1"
  50. id="ArriveGoodsForm-supplier"
  51. name="supplierName"
  52. >
  53. <JSelect v-model:value="formData.supplier" :get-option-url="supplierOption" :showField="showField" @change="changeSupplier"></JSelect>
  54. </a-form-item>
  55. </a-col>
  56. <a-col :span="12">
  57. <a-form-item label="优先级(priority)" v-bind="validateInfos.priority" id="ArriveGoodsForm-priority" name="priority">
  58. <JDictSelectTag v-model:value="formData.priority" placeholder="请选择" dictCode="priority" disabled />
  59. </a-form-item>
  60. </a-col>
  61. <a-col :span="12">
  62. <a-form-item
  63. label="产品分类(production class)"
  64. v-bind="validateInfos.productionClass"
  65. :label-col="formItemLayout.labelCol1"
  66. :wrapper-col="formItemLayout.wrapperCol1"
  67. id="ArriveGoodsForm-productionClass"
  68. name="productionClass"
  69. >
  70. <ApiSelect
  71. :api="ClassList"
  72. showSearch
  73. v-model:value="formData.productionClass"
  74. optionFilterProp="label"
  75. resultField="records"
  76. labelField="name"
  77. valueField="id"
  78. :params="{ pageSize: -1 }"
  79. disabled
  80. />
  81. </a-form-item>
  82. </a-col>
  83. <a-col :span="12">
  84. <a-form-item label="机型(model)" v-bind="validateInfos.model" id="ArriveGoodsForm-model" name="model">
  85. <JDictSelectTag v-model:value="formData.model" placeholder="请选择" dictCode="model_typer" disabled />
  86. </a-form-item>
  87. </a-col>
  88. <a-col :span="12">
  89. <a-form-item
  90. label="厂家(maker)"
  91. v-bind="validateInfos.maker"
  92. :label-col="formItemLayout.labelCol1"
  93. :wrapper-col="formItemLayout.wrapperCol1"
  94. id="ArriveGoodsForm-maker"
  95. name="maker"
  96. >
  97. <a-input v-model:value="formData.maker" placeholder="请输入厂家(maker)" allow-clear disabled />
  98. </a-form-item>
  99. </a-col>
  100. <a-col :span="12">
  101. <a-form-item label="发货方式(delivery)" v-bind="validateInfos.delivery" id="ArriveGoodsForm-delivery" name="delivery">
  102. <JDictSelectTag v-model:value="formData.delivery" placeholder="请选择" dictCode="delivery_methods" disabled />
  103. </a-form-item>
  104. </a-col>
  105. <a-col :span="12">
  106. <a-form-item
  107. label="包装要求(package requirement)"
  108. v-bind="validateInfos.packagebRequirement"
  109. :label-col="formItemLayout.labelCol1"
  110. :wrapper-col="formItemLayout.wrapperCol1"
  111. id="ArriveGoodsForm-packagebRequirement"
  112. name="packagebRequirement"
  113. >
  114. <a-input v-model:value="formData.packagebRequirement" placeholder="请输入包装要求(package requirement)" allow-clear disabled />
  115. </a-form-item>
  116. </a-col>
  117. <a-col :span="12">
  118. <a-form-item
  119. label="运单号(waybill number)"
  120. v-bind="validateInfos.waybillNumber"
  121. id="ArriveGoodsForm-waybillNumber"
  122. name="waybillNumber"
  123. >
  124. <a-input v-model:value="formData.waybillNumber" placeholder="请输入运单号(waybill number)" allow-clear AutoComplete="off" />
  125. </a-form-item>
  126. </a-col>
  127. <a-col :span="12">
  128. <a-form-item
  129. label="收件人(recipient)"
  130. v-bind="validateInfos.recipient"
  131. :label-col="formItemLayout.labelCol1"
  132. :wrapper-col="formItemLayout.wrapperCol1"
  133. id="ArriveGoodsForm-recipient"
  134. name="recipient"
  135. >
  136. <a-input v-model:value="formData.recipient" placeholder="请输入收件人(recipient)" allow-clear disabled />
  137. </a-form-item>
  138. </a-col>
  139. <a-col :span="12">
  140. <a-form-item
  141. label="收件人电话(recipient tel)"
  142. v-bind="validateInfos.recipientTel"
  143. id="ArriveGoodsForm-recipientTel"
  144. name="recipientTel"
  145. >
  146. <a-input v-model:value="formData.recipientTel" placeholder="请输入收件人电话(recipient tel)" allow-clear disabled />
  147. </a-form-item>
  148. </a-col>
  149. <a-col :span="12">
  150. <a-form-item
  151. label="收件人地址(recipient address)"
  152. v-bind="validateInfos.recipientAddress"
  153. :label-col="formItemLayout.labelCol1"
  154. :wrapper-col="formItemLayout.wrapperCol1"
  155. id="ArriveGoodsForm-recipientAddress"
  156. name="recipientAddress"
  157. >
  158. <a-input v-model:value="formData.recipientAddress" placeholder="请输入收件人地址(recipient address)" allow-clear disabled />
  159. </a-form-item>
  160. </a-col>
  161. <a-col :span="12">
  162. <a-form-item
  163. label="质保条款(warranty terms)"
  164. v-bind="validateInfos.warrantyTerms"
  165. id="ArriveGoodsForm-warrantyTerms"
  166. name="warrantyTerms"
  167. >
  168. <a-input v-model:value="formData.warrantyTerms" placeholder="请输入质保条款(warranty terms)" allow-clear disabled />
  169. </a-form-item>
  170. </a-col>
  171. <a-col :span="12">
  172. <a-form-item
  173. label="采购部门(purchase department)"
  174. v-bind="validateInfos.purchaseDepartment"
  175. :label-col="formItemLayout.labelCol1"
  176. :wrapper-col="formItemLayout.wrapperCol1"
  177. id="ArriveGoodsForm-purchaseDepartment"
  178. name="purchaseDepartment"
  179. >
  180. <a-input v-model:value="formData.purchaseDepartmentName" placeholder="请输入" allow-clear disabled />
  181. </a-form-item>
  182. </a-col>
  183. <a-col :span="12">
  184. <a-form-item label="采购员(purchasesman)" v-bind="validateInfos.purchaseman" id="ArriveGoodsForm-purchaseman" name="purchaseman">
  185. <a-input v-model:value="formData.purchasemanName" placeholder="请输入采购员(salesman)" allow-clear disabled />
  186. </a-form-item>
  187. </a-col>
  188. <a-col :span="12">
  189. <a-form-item
  190. label="发票/发货日期(delivery/invoice date)"
  191. v-bind="validateInfos.invoiceDate"
  192. :label-col="formItemLayout.labelCol1"
  193. :wrapper-col="formItemLayout.wrapperCol1"
  194. id="ArriveGoodsForm-invoiceDate"
  195. name="invoiceDate"
  196. >
  197. <a-date-picker
  198. placeholder="请选择发票/发货日期(delivery/invoice date)"
  199. v-model:value="formData.invoiceDate"
  200. value-format="YYYY-MM-DD"
  201. style="width: 100%"
  202. allow-clear
  203. />
  204. </a-form-item>
  205. </a-col>
  206. <a-col :span="12">
  207. <a-form-item label="备注(notes)" v-bind="validateInfos.notes" id="ArriveGoodsForm-notes" name="notes">
  208. <a-input v-model:value="formData.notes" AutoComplete="off" />
  209. </a-form-item>
  210. </a-col>
  211. <a-col :span="12">
  212. <a-form-item
  213. label="到货详情(arrival details)"
  214. v-bind="validateInfos.arrivalDetails"
  215. :label-col="formItemLayout.labelCol1"
  216. :wrapper-col="formItemLayout.wrapperCol1"
  217. id="ArriveGoodsForm-arrivalDetails"
  218. name="arrivalDetails"
  219. >
  220. <JUpload v-model:value="formData.arrivalDetails" />
  221. </a-form-item>
  222. </a-col>
  223. </a-row>
  224. </a-form>
  225. </template>
  226. </JFormContainer>
  227. <!-- 子表单区域 -->
  228. <a-tabs v-model:activeKey="activeKey" animated style="padding: 24px; padding-top: 0px">
  229. <a-tab-pane tab="到货单 - 到货明细(arrive details)" key="arriveDetailsFormProduct" :forceRender="true">
  230. <a-button type="primary" style="margin-right: 1%; margin-bottom: 1%" @click="selectPurchaseOrderList">
  231. 选择采购单(select purchase order)</a-button
  232. >
  233. <j-vxe-table
  234. :keep-source="true"
  235. resizable
  236. ref="arriveDetailsFormProductTableRef"
  237. :loading="arriveDetailsFormProductTable.loading"
  238. :columns="arriveDetailsFormProductTable.columns"
  239. :dataSource="arriveDetailsFormProductTable.dataSource"
  240. :maxHeight="340"
  241. :disabled="disabled"
  242. :rowNumber="true"
  243. :rowSelection="true"
  244. asyncRemove
  245. >
  246. <template #action="props">
  247. <a-popconfirm title="确定删除吗?" @confirm="handleDelete(props)">
  248. <a>删除(delete)</a>
  249. </a-popconfirm>
  250. </template>
  251. </j-vxe-table>
  252. </a-tab-pane>
  253. <a-tab-pane tab="到货单 - 船明细(ship details)" key="ArriveGoodsFormShipFormShip" :forceRender="true">
  254. <j-vxe-table
  255. :keep-source="true"
  256. resizable
  257. ref="ArriveGoodsFormShipTableRef"
  258. :loading="ArriveGoodsFormShipFormShipTable.loading"
  259. :columns="ArriveGoodsFormShipFormShipTable.columns"
  260. :dataSource="ArriveGoodsFormShipFormShipTable.dataSource"
  261. :maxHeight="340"
  262. :disabled="disabled"
  263. :rowNumber="true"
  264. :rowSelection="true"
  265. >
  266. <template #action="props">
  267. <a @click="viewAccessory(props)">查看配件信息(view accessory information)</a>
  268. </template>
  269. </j-vxe-table>
  270. </a-tab-pane>
  271. </a-tabs>
  272. <SelectProjectModal ref="SelectProjectModalRef" @select-project="addProject" />
  273. <BaseShipArchiveAccessoriesModal ref="BaseShipArchiveAccessoriesModalRef" />
  274. <SelectPurchaseOrderModal ref="SelectPurchaseOrderModalRef" @select-purchase-order="addAddiveGoods" />
  275. </a-spin>
  276. </template>
  277. <script lang="ts">
  278. import { defineComponent, ref, reactive, computed, toRaw } from 'vue';
  279. import { defHttp } from '/@/utils/http/axios';
  280. import { useValidateAntFormAndTable } from '/@/hooks/system/useJvxeMethods';
  281. import {
  282. queryArriveGoodsShipTable,
  283. queryArriveGoodsDetailByMainId,
  284. queryDataById,
  285. ClassList,
  286. saveOrUpdate,
  287. supplierOption,
  288. } from '../ArriveGoodsForm.api';
  289. import { JVxeTable } from '/@/components/jeecg/JVxeTable';
  290. import { ArriveGoodsFormShipColumns, ArriveGoodsDetailColumns } from '../ArriveGoodsForm.data';
  291. import SelectProjectModal from '../../../publicComponents/SelectProjectModal.vue';
  292. import BaseShipArchiveAccessoriesModal from '../../../publicComponents/BaseShipArchiveAccessoriesModal.vue';
  293. import SelectPurchaseOrderModal from '../../../publicComponents/SelectPurchaseOrderModal.vue';
  294. import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
  295. import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
  296. import { JDictSelectTag,JSelect,ApiSelect } from '/@/components/Form';
  297. import JSelectInput from '/@/components/Form/src/jeecg/components/JSelectInput.vue';
  298. import { Form, message } from 'ant-design-vue';
  299. import { useUserStore } from '/@/store/modules/user';
  300. import moment from 'moment';
  301. const useForm = Form.useForm;
  302. export default defineComponent({
  303. name: 'ArriveGoodsFormForm',
  304. components: {
  305. JVxeTable,
  306. JFormContainer,
  307. JUpload,
  308. JDictSelectTag,
  309. JSelectInput,
  310. SelectProjectModal,
  311. BaseShipArchiveAccessoriesModal,
  312. SelectPurchaseOrderModal,
  313. ApiSelect,
  314. JSelect
  315. },
  316. props: {
  317. formDisabled: {
  318. type: Boolean,
  319. default: false,
  320. },
  321. formData: { type: Object, default: () => {} },
  322. formBpm: { type: Boolean, default: true },
  323. },
  324. emits: ['success'],
  325. setup(props, { emit }) {
  326. var showField = ref('currency+name');
  327. const userStore = useUserStore();
  328. const loading = ref(false);
  329. const formRef = ref();
  330. const ArriveGoodsFormShipTableRef = ref();
  331. const SelectProjectModalRef = ref();
  332. const BaseShipArchiveAccessoriesModalRef = ref();
  333. const SelectPurchaseOrderModalRef = ref();
  334. const ArriveGoodsFormShipFormShipTable = reactive<Record<string, any>>({
  335. loading: false,
  336. columns: ArriveGoodsFormShipColumns,
  337. dataSource: [],
  338. });
  339. const arriveDetailsFormProductTableRef = ref();
  340. const arriveDetailsFormProductTable = reactive<Record<string, any>>({
  341. loading: false,
  342. columns: ArriveGoodsDetailColumns,
  343. dataSource: [],
  344. });
  345. const activeKey = ref('arriveDetailsFormProduct');
  346. var notAllowEdit = ref(false);
  347. const formData = reactive<Record<string, any>>({
  348. id: '',
  349. status: undefined,
  350. delFlag: undefined,
  351. sourceCode: '',
  352. billCode: '',
  353. arrivalDate: moment(new Date()).format('YYYY-MM-DD'),
  354. project: '',
  355. projectName: '',
  356. supplier: '',
  357. supplierName: '',
  358. priority: '',
  359. productionClass: '',
  360. model: '',
  361. maker: '',
  362. delivery: '',
  363. waybillNumber: '',
  364. packagebRequirement: '',
  365. recipient: '',
  366. recipientTel: '',
  367. recipientAddress: '',
  368. warrantyTerms: '',
  369. purchaseDepartment: '',
  370. purchaseDepartmentName: '',
  371. purchaseman: '',
  372. purchasemanName: '',
  373. invoiceDate: '',
  374. notes: '',
  375. arrivalDetails: '',
  376. });
  377. //表单验证
  378. const validatorRules = reactive({
  379. projectName: [
  380. { required: true, message: '请选择项目(select project)' }
  381. ],
  382. supplier: [
  383. { required: true, message: '请选择供应商(select supplier)' }
  384. ],
  385. });
  386. const {resetFields, validate, validateInfos} = useForm(formData, validatorRules, {immediate: false});
  387. const dbData = {};
  388. const formItemLayout = {
  389. labelCol: { xs: { span: 24 }, sm: { span: 5 } },
  390. wrapperCol: { xs: { span: 24 }, sm: { span: 16 } },
  391. labelCol1: { xs: { span: 24 }, sm: { span: 7 } },
  392. wrapperCol1: { xs: { span: 24 }, sm: { span: 15 } },
  393. };
  394. // 表单禁用
  395. const disabled = computed(() => {
  396. if (props.formBpm === true) {
  397. if (props.formData.disabled === false) {
  398. return false;
  399. } else {
  400. return true;
  401. }
  402. }
  403. return props.formDisabled;
  404. });
  405. function add() {
  406. resetFields();
  407. ArriveGoodsFormShipFormShipTable.dataSource = [];
  408. arriveDetailsFormProductTable.dataSource = [];
  409. activeKey.value = 'arriveDetailsFormProduct';
  410. formData.purchaseman = userStore.getUserInfo.username;
  411. formData.purchasemanName = userStore.getUserInfo.realname;
  412. formData.purchaseDepartment = userStore.getUserInfo.orgCode;
  413. formData.purchaseDepartmentName = userStore.getUserInfo.orgName;
  414. }
  415. async function edit(row) {
  416. //主表数据
  417. await queryMainData(row.id);
  418. //子表数据
  419. const ArriveGoodsFormShipFormShipDataList = await queryArriveGoodsShipTable(row['id']);
  420. ArriveGoodsFormShipFormShipTable.dataSource = [...ArriveGoodsFormShipFormShipDataList];
  421. const arriveDetailsFormProductDataList = await queryArriveGoodsDetailByMainId(row['id']);
  422. arriveDetailsFormProductTable.dataSource = [...arriveDetailsFormProductDataList];
  423. if (arriveDetailsFormProductTable.dataSource.length !== 0) {
  424. notAllowEdit.value = true;
  425. } else {
  426. notAllowEdit.value = false;
  427. }
  428. }
  429. async function queryMainData(id) {
  430. const row = await queryDataById(id);
  431. resetFields();
  432. const tmpData = {};
  433. Object.keys(formData).forEach((key) => {
  434. if (row.hasOwnProperty(key)) {
  435. tmpData[key] = row[key];
  436. }
  437. });
  438. //赋值
  439. Object.assign(formData, tmpData);
  440. }
  441. const { getSubFormAndTableData, transformData } = useValidateAntFormAndTable(activeKey, {
  442. purDeliveryNodeShip: ArriveGoodsFormShipTableRef,
  443. purDeliveryNoteArrival: arriveDetailsFormProductTableRef,
  444. });
  445. async function getFormData() {
  446. try {
  447. // 触发表单验证
  448. await validate();
  449. } catch ({ errorFields }) {
  450. if (errorFields) {
  451. const firstField = errorFields[0];
  452. if (firstField) {
  453. formRef.value.scrollToField(firstField.name, { behavior: 'smooth', block: 'center' });
  454. }
  455. }
  456. return Promise.reject(errorFields);
  457. }
  458. return transformData(toRaw(formData));
  459. }
  460. async function submitForm() {
  461. var xTable = arriveDetailsFormProductTableRef.value!.getXTable()
  462. if(xTable.data.length==0){
  463. message.warning('请添加产品明细')
  464. }else{
  465. arriveDetailsFormProductTableRef.value!.validateTable().then(async (errMap) => {
  466. if (errMap) {
  467. console.log('表单验证未通过:', { errMap });
  468. } else {
  469. const mainData = await getFormData();
  470. const subData = await getSubFormAndTableData();
  471. const values = Object.assign({}, dbData, mainData, subData);
  472. console.log('表单提交数据', values)
  473. const isUpdate = values.id ? true : false
  474. await saveOrUpdate(values, isUpdate);
  475. //关闭弹窗
  476. emit('success');
  477. }
  478. });
  479. }
  480. }
  481. function setFieldsValue(values) {
  482. if (values) {
  483. Object.keys(values).map((k) => {
  484. formData[k] = values[k];
  485. });
  486. }
  487. }
  488. function onSearchProject() {
  489. SelectProjectModalRef.value.getTable();
  490. }
  491. function selectPurchaseOrderList() {
  492. SelectPurchaseOrderModalRef.value.getTable(formData);
  493. }
  494. function getShipList(id) {
  495. let params = { id: id };
  496. let url = '/purCode/purOrder/queryPurOrderShipByMainId';
  497. defHttp.get({ url: url, params }, { isTransformResponse: false }).then((res) => {
  498. if (res) {
  499. ArriveGoodsFormShipFormShipTable.dataSource = res.result;
  500. }
  501. });
  502. }
  503. function addProject(data) {
  504. if (data.length == 0) {
  505. formData.project = '';
  506. formData.projectName = '';
  507. } else {
  508. formData.project = data[0].id;
  509. formData.projectName = data[0].code;
  510. }
  511. }
  512. //查看配件信息
  513. function viewAccessory(prop) {
  514. BaseShipArchiveAccessoriesModalRef.value.getTable(prop.row);
  515. }
  516. //产品明细-删除行
  517. function handleDelete(prop) {
  518. var xTable = arriveDetailsFormProductTableRef.value!.getXTable()
  519. var newArray = [...xTable.data]
  520. newArray.splice(prop.rowIndex, 1)
  521. arriveDetailsFormProductTable.dataSource = newArray
  522. if(arriveDetailsFormProductTable.dataSource.length!==0){
  523. notAllowEdit.value = true
  524. }else{
  525. notAllowEdit.value = false
  526. }
  527. }
  528. function addAddiveGoods(data){
  529. data.map(item=>{
  530. item.model = item.childModel
  531. item.sourceId = item.childId
  532. item.orderQuantity=item.quantity
  533. item.arrivalQuantity=item.arrivalQuantity?Number(item.arrivalQuantity):0
  534. item.quantity = Number(item.orderQuantity)-item.arrivalQuantity
  535. })
  536. var xTable = arriveDetailsFormProductTableRef.value!.getXTable()
  537. var arr = xTable.data.concat(data)
  538. arriveDetailsFormProductTable.dataSource=arr
  539. notAllowEdit.value=true
  540. formData.sourceCode =data[0].billCode
  541. formData.project = data[0].project
  542. formData.projectName = data[0].projectName
  543. formData.supplierName = data[0].supplierName
  544. formData.supplier= data[0].supplier
  545. formData.priority =data[0].priority
  546. formData.productionClass =data[0].productionClass
  547. formData.model =data[0].headModel
  548. formData.maker =data[0].maker
  549. formData.delivery = data[0].delivery
  550. formData.packagebRequirement = data[0].packagebRequirement
  551. formData.recipient = data[0].recipient
  552. formData.recipientTel = data[0].recipientTel
  553. formData.recipientAddress = data[0].recipientAddress
  554. getShipList(data[0].headId)
  555. }
  556. async function changeSupplier(prop) {
  557. if (prop) {
  558. var params = { id: prop };
  559. var obj = await supplierOption(params);
  560. formData.supplierName = obj.records[0].name;
  561. } else {
  562. formData.supplier = '';
  563. formData.supplierName = '';
  564. }
  565. }
  566. /**
  567. * 值改变事件触发-树控件回调
  568. * @param key
  569. * @param value
  570. */
  571. function handleFormChange(key, value) {
  572. formData[key] = value;
  573. }
  574. return {
  575. ArriveGoodsFormShipTableRef,
  576. ArriveGoodsFormShipFormShipTable,
  577. arriveDetailsFormProductTableRef,
  578. arriveDetailsFormProductTable,
  579. validatorRules,
  580. validateInfos,
  581. activeKey,
  582. loading,
  583. formData,
  584. setFieldsValue,
  585. handleFormChange,
  586. formItemLayout,
  587. disabled,
  588. getFormData,
  589. submitForm,
  590. add,
  591. edit,
  592. formRef,
  593. onSearchProject,
  594. SelectProjectModalRef,
  595. addProject,
  596. handleDelete,
  597. BaseShipArchiveAccessoriesModalRef,
  598. viewAccessory,
  599. notAllowEdit,
  600. SelectPurchaseOrderModalRef,
  601. selectPurchaseOrderList,
  602. addAddiveGoods,
  603. changeSupplier,
  604. supplierOption,
  605. ClassList,
  606. showField
  607. };
  608. },
  609. });
  610. </script>
  611. <style lang="less" scoped>
  612. /** 时间和数字输入框样式 */
  613. :deep(.ant-input-number) {
  614. width: 100%;
  615. }
  616. :deep(.ant-calendar-picker) {
  617. width: 100%;
  618. }
  619. /deep/.vxe-table--body-wrapper {
  620. height: 100% !important;
  621. }
  622. /deep/.ant-modal-body {
  623. padding: 24px !important;
  624. }
  625. /deep/.ant-form-item {
  626. margin-bottom: 8px !important;
  627. }
  628. /deep/.vxe-cell--valid-error-msg{
  629. color: white !important;
  630. background-color: white !important;
  631. }
  632. </style>