add.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  1. <template>
  2. <div id="addOder">
  3. <el-form :model="basicForm" :rules="basicRules" ref="basic" label-width="auto">
  4. <el-row :gutter="10">
  5. <el-col :span="1.5">
  6. <el-form-item label="调出库存组织">
  7. <el-select clearable size="small" v-model="basicForm.deliveryInventoryOrg" :disabled="sonDisable" @focus="chooseRefer('ORG_PARAM', true, '调出库存组织')" style="width: 200px">
  8. <el-option v-for="item in chuOrgOptions" :key="item.id" :label="item.name" :value="item.id" />
  9. </el-select>
  10. </el-form-item>
  11. </el-col>
  12. <el-col :span="1.5">
  13. <el-form-item label="订单类型">
  14. <el-select v-model="basicForm.billType" :disabled="sonDisable" size="small" style="width: 200px" clearable>
  15. <el-option v-for="dict in dict.type.sys_allot_billtype" :key="dict.value" :label="dict.label" :value="dict.value">
  16. </el-option>
  17. </el-select>
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="1.5">
  21. <el-form-item label="单据号">
  22. <el-input
  23. v-model="basicForm.code"
  24. size="small"
  25. :disabled="sonDisable"
  26. clearable
  27. style="width: 200px"
  28. />
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="1.5">
  32. <el-form-item label="单据日期">
  33. <el-date-picker
  34. v-model="basicForm.billDate"
  35. size="small"
  36. :disabled="sonDisable"
  37. type="date"
  38. clearable
  39. value-format="yyyy-MM-dd"
  40. style="width: 200px">
  41. </el-date-picker>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="1.5">
  45. <el-form-item label="调拨方式">
  46. <el-select v-model="basicForm.allotType" :disabled="sonDisable" size="small" style="width: 200px" clearable>
  47. <el-option v-for="dict in dict.type.sys_to_type" :key="dict.value" :label="dict.label" :value="dict.value">
  48. </el-option>
  49. </el-select>
  50. </el-form-item>
  51. </el-col>
  52. <el-col :span="1.5">
  53. <el-form-item label="调拨出库单号">
  54. <el-input
  55. v-model="basicForm.deliveryCode"
  56. size="small"
  57. :disabled="sonDisable"
  58. clearable
  59. style="width: 200px"
  60. />
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="1.5">
  64. <el-form-item label="调拨入库单号">
  65. <el-input
  66. v-model="basicForm.storageCode"
  67. size="small"
  68. :disabled="sonDisable"
  69. clearable
  70. style="width: 200px"
  71. />
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="1.5">
  75. <el-form-item label="调入库存组织">
  76. <el-select clearable size="small" v-model="basicForm.storageInventoryOrg" :disabled="sonDisable" @focus="chooseRefer('ORG_PARAM', true, '调入库存组织')" style="width: 200px">
  77. <el-option v-for="item in ruOrgOptions" :key="item.id" :label="item.name" :value="item.id" />
  78. </el-select>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :span="1.5">
  82. <el-form-item label="调出业务员">
  83. <el-select clearable size="small" v-model="basicForm.businessPersonal" :disabled="sonDisable" @focus="chooseRefer('CONTACTS_PARAM', true, '调出业务员')" style="width: 200px">
  84. <el-option v-for="item in manOptions" :key="item.id" :label="item.name" :value="item.code" />
  85. </el-select>
  86. </el-form-item>
  87. </el-col>
  88. <el-col :span="1.5">
  89. <el-form-item label="调出部门">
  90. <el-select clearable size="small" v-model="basicForm.deliveryDept" :disabled="sonDisable" @focus="chooseRefer('DEPT_PARAM', true, '调出部门')" style="width: 200px">
  91. <el-option v-for="item in deptOptions" :key="item.id" :label="item.name" :value="item.id" />
  92. </el-select>
  93. </el-form-item>
  94. </el-col>
  95. <el-col :span="1.5">
  96. <el-form-item label="币种">
  97. <el-select clearable size="small" v-model="basicForm.currency" :disabled="sonDisable" @focus="chooseRefer('CURRENCY_PARAM', true, '币种')" style="width: 200px">
  98. <el-option v-for="item in currencyOptions" :key="item.id" :label="item.name" :value="item.id" />
  99. </el-select>
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="1.5">
  103. <el-form-item label="折本汇率">
  104. <el-input-number
  105. v-model="basicForm.rate"
  106. size="small"
  107. disabled
  108. :precision="2"
  109. :step="0.1"
  110. :max="10"
  111. style="width: 200px"
  112. ></el-input-number>
  113. </el-form-item>
  114. </el-col>
  115. <el-col :span="1.5">
  116. <el-form-item label="在途归属">
  117. <el-input
  118. v-model="basicForm.onRouteAffilliation"
  119. size="small"
  120. :disabled="sonDisable"
  121. clearable
  122. style="width: 200px"
  123. />
  124. </el-form-item>
  125. </el-col>
  126. <el-col :span="1.5">
  127. <el-form-item label="总数量">
  128. <el-input
  129. v-model="basicForm.qty"
  130. size="small"
  131. :disabled="sonDisable"
  132. clearable
  133. style="width: 200px"
  134. />
  135. </el-form-item>
  136. </el-col>
  137. <el-col :span="1.5">
  138. <el-form-item label="结算路径">
  139. <el-input
  140. v-model="basicForm.accountPath"
  141. size="small"
  142. :disabled="sonDisable"
  143. clearable
  144. style="width: 200px"
  145. />
  146. </el-form-item>
  147. </el-col>
  148. <el-col :span="1.5">
  149. <el-form-item label="客户">
  150. <el-input
  151. v-model="basicForm.customer"
  152. size="small"
  153. :disabled="sonDisable"
  154. clearable
  155. style="width: 200px"
  156. />
  157. </el-form-item>
  158. </el-col>
  159. <el-col :span="1.5">
  160. <el-form-item label="调入仓库">
  161. <el-input
  162. v-model="basicForm.storageWarehouse"
  163. size="small"
  164. :disabled="sonDisable"
  165. clearable
  166. style="width: 200px"
  167. />
  168. </el-form-item>
  169. </el-col>
  170. <el-col :span="1.5">
  171. <el-form-item label="调出仓库">
  172. <el-input
  173. v-model="basicForm.deliveryWarehouse"
  174. size="small"
  175. :disabled="sonDisable"
  176. clearable
  177. style="width: 200px"
  178. />
  179. </el-form-item>
  180. </el-col>
  181. <el-col :span="1.5">
  182. <el-form-item label="物流项目组">
  183. <el-select v-model="basicForm.materialProject" :disabled="sonDisable" size="small" style="width: 200px" clearable>
  184. <el-option v-for="dict in dict.type.sys_project_group" :key="dict.value" :label="dict.label" :value="dict.value">
  185. </el-option>
  186. </el-select>
  187. </el-form-item>
  188. </el-col>
  189. <el-col :span="1.5">
  190. <el-form-item label="利润中心">
  191. <el-select clearable size="small" v-model="basicForm.liacenter" :disabled="sonDisable" @focus="chooseTreeRefer('LIACENTER_PARAM', false, '利润中心')" style="width: 200px">
  192. <el-option v-for="item in liacenterOptions" :key="item.id" :label="item.name" :value="item.id" />
  193. </el-select>
  194. </el-form-item>
  195. </el-col>
  196. <el-col :span="1.5">
  197. <el-form-item label="是否已同步WMS">
  198. <el-select clearable size="small" v-model="basicForm.isSendWms" :disabled="sonDisable" style="width: 200px">
  199. <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
  200. </el-select>
  201. </el-form-item>
  202. </el-col>
  203. <el-col :span="1.5">
  204. <el-form-item label="备注">
  205. <el-input
  206. v-model="basicForm.remark"
  207. size="small"
  208. :disabled="sonDisable"
  209. clearable
  210. style="width: 200px"
  211. />
  212. </el-form-item>
  213. </el-col>
  214. <el-col :span="1.5">
  215. <el-form-item label="单据状态">
  216. <el-select disabled v-model="basicForm.status" size="small" style="width: 200px" clearable>
  217. <el-option v-for="dict in dict.type.sys_status" :key="dict.value" :label="dict.label" :value="dict.value">
  218. </el-option>
  219. </el-select>
  220. </el-form-item>
  221. </el-col>
  222. </el-row>
  223. <el-tabs style="margin-top: 10px;" type="border-card">
  224. <el-tab-pane label="物料信息">
  225. <div class="btn_grooup">
  226. <el-button type="primary" size="small" @click="addLine">增行</el-button>
  227. </div>
  228. <el-table
  229. :data="materialInfo"
  230. fit
  231. max-height="480"
  232. >
  233. <el-table-column label="行号" align="center" prop="rowno"/>
  234. <el-table-column label="物料编码" align="center" prop="material" width="230px">
  235. <template slot-scope="scope">
  236. <el-form-item class="hang">
  237. <el-input readonly size="small" v-model="scope.row.material">
  238. <el-button size="small" :disabled="sonDisable" slot="append" icon="el-icon-more" @click="chooseMaterial(scope.$index)"></el-button>
  239. </el-input>
  240. </el-form-item>
  241. </template>
  242. </el-table-column>
  243. <el-table-column label="物料名称" align="center" prop="materialName"/>
  244. <el-table-column label="调拨出库单号" align="center" prop="deliveryCode"/>
  245. <el-table-column label="调拨入库单号" align="center" prop="storageCode"/>
  246. <el-table-column label="规格" align="center" prop="specification"/>
  247. <el-table-column label="生产厂家/代理人" align="center" prop="manufacturer"/>
  248. <el-table-column label="产地" align="center" prop="originPlaceName"/>
  249. <el-table-column label="型号" align="center" prop="model"/>
  250. <el-table-column label="单位" align="center" prop="unitName"/>
  251. <!-- <el-table-column label="调出仓库" align="center" prop="deliveryWarehouseName"/> -->
  252. <el-table-column label="数量" align="center" prop="qty" width="150px">
  253. <template slot-scope="scope">
  254. <el-form-item class="hang">
  255. <el-input :readonly="sonDisable" size="small" v-model="scope.row.qty"/>
  256. </el-form-item>
  257. </template>
  258. </el-table-column>
  259. <el-table-column label="主单位" align="center" prop="mainUnitName"/>
  260. <el-table-column label="换算率" align="center" prop="equation"/>
  261. <el-table-column label="主数量" align="center" prop="mainQty" width="150px">
  262. <template slot-scope="scope">
  263. <el-form-item class="hang">
  264. <el-input :readonly="sonDisable" size="small" v-model="scope.row.mainQty"/>
  265. </el-form-item>
  266. </template>
  267. </el-table-column>
  268. <el-table-column label="税率" align="center" prop="rate"/>
  269. <!-- <el-table-column label="调入仓库" align="center" prop="storageWarehouseName"/> -->
  270. <el-table-column label="批次号" align="center" prop="patchNo"/>
  271. <el-table-column label="产品批号" align="center" prop="producBatch"/>
  272. <el-table-column label="生产日期" align="center" prop="manufactureDate" width="230px">
  273. <template slot-scope="scope">
  274. <el-form-item class="hang">
  275. <el-date-picker
  276. v-model="scope.row.manufactureDate"
  277. :readonly="sonDisable"
  278. type="date"
  279. size="small"
  280. value-format="yyyy-MM-dd">
  281. </el-date-picker>
  282. </el-form-item>
  283. </template>
  284. </el-table-column>
  285. <el-table-column label="有效期至/失效日期" align="center" prop="periodEndDate"/>
  286. <el-table-column label="批准文号" align="center" prop="ratifyCode"/>
  287. <el-table-column label="注册证号" align="center" prop="registration"/>
  288. <el-table-column label="商品名" align="center" prop="productCode"/>
  289. <el-table-column label="通用名" align="center" prop="commonCode"/>
  290. <el-table-column label="剂型" align="center" prop="drug"/>
  291. <el-table-column label="调入调出结算规则明细" align="center" prop="ruleDetail"/>
  292. <el-table-column label="上市许可持有人" align="center" prop="marketingApprovalPersonal"/>
  293. <el-table-column label="生产许可证号/经营许可证号/备案凭证号" align="center" prop="production"/>
  294. <el-table-column label="pi码" align="center" prop="pi">
  295. <template slot-scope="scope">
  296. <el-form-item class="hang">
  297. <el-input :readonly="sonDisable" size="small" v-model="scope.row.pi"/>
  298. </el-form-item>
  299. </template>
  300. </el-table-column>
  301. <!-- <el-table-column label="无税金额" align="center" prop="code"/> -->
  302. <!-- <el-table-column label="备注" align="center" prop="code"/> -->
  303. <el-table-column label="类别" align="center" prop="classify"/>
  304. <el-table-column label="客户物料码" align="center" prop="customerLogistic"/>
  305. <el-table-column label="客户物料名称" align="center" prop="customerLogisticName"/>
  306. <el-table-column
  307. fixed="right"
  308. label="操作"
  309. align="center"
  310. >
  311. <template slot-scope="scope">
  312. <el-button type="text" size="small" :disabled="sonDisable" @click="delLine(scope.$index, scope.row)">删除</el-button>
  313. </template>
  314. </el-table-column>
  315. </el-table>
  316. </el-tab-pane>
  317. <el-tab-pane label="收发货信息">
  318. <el-table
  319. :data="receiveInfo"
  320. fit
  321. max-height="480"
  322. >
  323. <el-table-column label="行号" align="center" prop="rowno"/>
  324. <el-table-column label="调拨出库单号" align="center" prop="deliveryCode"/>
  325. <el-table-column label="调拨入库单号" align="center" prop="storageCode"/>
  326. <el-table-column label="生产厂家/代理人" align="center" prop="manufacturer"/>
  327. <el-table-column label="产地" align="center" prop="originPlace"/>
  328. <el-table-column label="类别" align="center" prop="classify"/>
  329. <el-table-column label="调出仓库" align="center" prop="deliveryWarehouseName"/>
  330. <el-table-column label="调入仓库" align="center" prop="storageWarehouseName"/>
  331. <!-- <el-table-column label="收货利润中心" align="center" prop="code"/>
  332. <el-table-column label="发货利润中心" align="center" prop="code"/> -->
  333. <el-table-column label="调入业务员" align="center" prop="businessPersonalName"/>
  334. <el-table-column label="产品批号" align="center" prop="productBatch"/>
  335. <el-table-column label="生产日期" align="center" prop="manufactureDate"/>
  336. <el-table-column label="有效期至/失效日期" align="center" prop="periodEndDate"/>
  337. <el-table-column label="批准文号" align="center" prop="ratifyCode"/>
  338. <el-table-column label="注册证号" align="center" prop="registration"/>
  339. <el-table-column label="商品名" align="center" prop="productCode"/>
  340. <el-table-column label="通用名" align="center" prop="commonCode"/>
  341. <el-table-column label="剂型" align="center" prop="drug"/>
  342. <el-table-column label="收货客户" align="center" prop="customerName"/>
  343. <el-table-column label="收货地址" align="center" prop="addressaddress"/>
  344. <el-table-column label="收货地区" align="center" prop="area"/>
  345. <el-table-column label="收货地点" align="center" prop="place"/>
  346. <el-table-column label="计划发货日期" align="center" prop="deliveryDate"/>
  347. <el-table-column label="计划到货日期" align="center" prop="strageDate"/>
  348. <el-table-column label="运输方式" align="center" prop="transportation"/>
  349. <el-table-column label="备注" align="center" prop="remark"/>
  350. <el-table-column label="客户物料编码" align="center" prop="customerLogistic"/>
  351. <el-table-column label="客户物料名称" align="center" prop="customerLogisticName"/>
  352. </el-table>
  353. </el-tab-pane>
  354. <el-tab-pane label="价格费用">
  355. <el-table
  356. :data="priceList"
  357. fit
  358. max-height="480"
  359. >
  360. <el-table-column label="行号" align="center" prop="rowno"/>
  361. <el-table-column label="调拨出库单号" align="center" prop="deliveryCode"/>
  362. <el-table-column label="调拨入库单号" align="center" prop="storageCode"/>
  363. <el-table-column label="生产厂家/代理人" align="center" prop="manufacturer"/>
  364. <el-table-column label="产地" align="center" prop="originPlace"/>
  365. <el-table-column label="类别" align="center" prop="classify"/>
  366. <!-- <el-table-column label="税率" align="center" prop="code"/> -->
  367. <!-- <el-table-column label="无税单价" align="center" prop="code"/> -->
  368. <!-- <el-table-column label="含税单价" align="center" prop="code"/> -->
  369. <el-table-column label="产品批号" align="center" prop="productBatch"/>
  370. <el-table-column label="生产日期" align="center" prop="manufactureDate"/>
  371. <el-table-column label="有效期至/失效日期" align="center" prop="periodEndDate"/>
  372. <el-table-column label="批准文号" align="center" prop="ratifyCode"/>
  373. <el-table-column label="注册证号" align="center" prop="registration"/>
  374. <el-table-column label="商品名" align="center" prop="productCode"/>
  375. <el-table-column label="通用名" align="center" prop="commonCode"/>
  376. <el-table-column label="剂型" align="center" prop="drug"/>
  377. <!-- <el-table-column label="询价无税价" align="center" prop="code"/> -->
  378. <!-- <el-table-column label="询价含税价" align="center" prop="code"/> -->
  379. <!-- <el-table-column label="税额" align="center" prop="code"/> -->
  380. <!-- <el-table-column label="加价率" align="center" prop="code"/> -->
  381. <!-- <el-table-column label="无税金额" align="center" prop="code"/> -->
  382. <!-- <el-table-column label="价税合计" align="center" prop="code"/> -->
  383. <el-table-column label="客户物料码" align="center" prop="customerLogistic"/>
  384. <el-table-column label="客户物料名称" align="center" prop="customerLogisticName"/>
  385. </el-table>
  386. </el-tab-pane>
  387. <el-tab-pane label="执行结果">
  388. <el-table
  389. :data="resultList"
  390. fit
  391. max-height="480"
  392. >
  393. <el-table-column label="行号" align="center" prop="rowno"/>
  394. <el-table-column label="调拨出库单号" align="center" prop="deliveryCode"/>
  395. <el-table-column label="调拨入库单号" align="center" prop="storageCode"/>
  396. <el-table-column label="生产厂家/代理人" align="center" prop="manufacturer"/>
  397. <el-table-column label="产地" align="center" prop="originPlace"/>
  398. <el-table-column label="类别" align="center" prop="classify"/>
  399. <el-table-column label="产品批号" align="center" prop="productBatch "/>
  400. <el-table-column label="生产日期" align="center" prop="manufactureDate"/>
  401. <el-table-column label="有效期至/失效日期" align="center" prop="periodEndDate"/>
  402. <el-table-column label="批准文号" align="center" prop="ratifyCode"/>
  403. <el-table-column label="注册证号" align="center" prop="registration"/>
  404. <el-table-column label="商品名" align="center" prop="productCode"/>
  405. <el-table-column label="通用名" align="center" prop="commonCode"/>
  406. <el-table-column label="剂型" align="center" prop="drug"/>
  407. <!-- <el-table-column label="已调出主数量" align="center" prop="code"/>
  408. <el-table-column label="已调入主数量" align="center" prop="code"/> -->
  409. <!-- <el-table-column label="调拨在途主数量" align="center" prop="code"/> -->
  410. <!-- <el-table-column label="已发货主数量" align="center" prop="code"/> -->
  411. <!-- <el-table-column label="途损主数量" align="center" prop="code"/> -->
  412. <!-- <el-table-column label="累计退货主数量" align="center" prop="code"/> -->
  413. <!-- <el-table-column label="调出与调入已结算主数量" align="center" prop="code"/> -->
  414. <!-- <el-table-column label="调出与调入已结算金额" align="center" prop="code"/> -->
  415. <el-table-column label="客户物料码" align="center" prop="customerLogistic"/>
  416. <el-table-column label="客户物料名称" align="center" prop="customerLogisticName"/>
  417. </el-table>
  418. </el-tab-pane>
  419. </el-tabs>
  420. <el-divider content-position="left">表尾信息</el-divider>
  421. <el-row :gutter="10">
  422. <el-col :span="1.5">
  423. <el-form-item label="制单人">
  424. <el-input
  425. v-model="basicForm.code"
  426. size="small"
  427. disabled
  428. clearable
  429. style="width: 200px"
  430. />
  431. </el-form-item>
  432. </el-col>
  433. <el-col :span="1.5">
  434. <el-form-item label="制单日期">
  435. <el-input
  436. v-model="basicForm.code"
  437. size="small"
  438. disabled
  439. clearable
  440. style="width: 200px"
  441. />
  442. </el-form-item>
  443. </el-col>
  444. <el-col :span="1.5">
  445. <el-form-item label="审批人">
  446. <el-input
  447. v-model="basicForm.code"
  448. size="small"
  449. disabled
  450. clearable
  451. style="width: 200px"
  452. />
  453. </el-form-item>
  454. </el-col>
  455. <el-col :span="1.5">
  456. <el-form-item label="审批日期">
  457. <el-input
  458. v-model="basicForm.code"
  459. size="small"
  460. disabled
  461. clearable
  462. style="width: 200px"
  463. />
  464. </el-form-item>
  465. </el-col>
  466. </el-row>
  467. <el-divider content-position="left">审计信息</el-divider>
  468. <el-row :gutter="10">
  469. <el-col :span="1.5">
  470. <el-form-item label="创建人">
  471. <el-input
  472. v-model="basicForm.createByName"
  473. size="small"
  474. disabled
  475. clearable
  476. style="width: 200px"
  477. />
  478. </el-form-item>
  479. </el-col>
  480. <el-col :span="1.5">
  481. <el-form-item label="创建时间">
  482. <el-input
  483. v-model="basicForm.code"
  484. size="small"
  485. disabled
  486. clearable
  487. style="width: 200px"
  488. />
  489. </el-form-item>
  490. </el-col>
  491. <el-col :span="1.5">
  492. <el-form-item label="最后修改人">
  493. <el-input
  494. v-model="basicForm.updateByName"
  495. size="small"
  496. disabled
  497. clearable
  498. style="width: 200px"
  499. />
  500. </el-form-item>
  501. </el-col>
  502. <el-col :span="1.5">
  503. <el-form-item label="最后修改时间">
  504. <el-input
  505. v-model="basicForm.code"
  506. size="small"
  507. disabled
  508. clearable
  509. style="width: 200px"
  510. />
  511. </el-form-item>
  512. </el-col>
  513. </el-row>
  514. </el-form>
  515. <div class="btn_group">
  516. <el-col :span="1.5" style="margin: 0 10px;">
  517. <el-button type="primary" size="small" plain @click="save" v-if="pageStu == 'add' || pageStu == 'edit'">保存</el-button>
  518. </el-col>
  519. <!-- <el-col :span="1.5" style="margin: 0 10px;">
  520. <el-button type="primary" size="small" plain @click="submit" v-if="pageStu == 'edit'">提交</el-button>
  521. </el-col> -->
  522. <el-col :span="1.5">
  523. <el-button size="small" plain @click="back">返回</el-button>
  524. </el-col>
  525. </div>
  526. <Refers ref="refer" @doSubmit="selectionsToInput" :single="true"/>
  527. <TreeRefers ref="tree" @doSubmit="selectionsToInput2" :single="true"/>
  528. <popDialog ref="materialRefer" @doSubmit="selectMaterial" :single="true" />
  529. </div>
  530. </template>
  531. <script>
  532. import {addOrder, getOrderDetail, editOrder} from '@/api/purchase/transferOrder.js'
  533. import Refers from '@/components/Refers/refers.vue'
  534. import TreeRefers from '@/components/Refers/treeRefer.vue'
  535. // 明细行选择物料参照
  536. import popDialog from '@/components/PopDialog/index.vue'
  537. export default {
  538. name: 'addOder',
  539. dicts: ['sys_allot_billtype', 'sys_project_group', 'sys_status', 'sys_to_type'],
  540. props: ['pageStu','row', 'disable'],
  541. components: {
  542. Refers,
  543. TreeRefers,
  544. popDialog
  545. },
  546. model: {
  547. prop: 'isList',
  548. event: 'jugislist'
  549. },
  550. data() {
  551. return {
  552. // 不能直接改变props传来的值
  553. sonPageStu: this.pageStu,
  554. sonDisable: this.disable,
  555. basicForm: {
  556. deliveryInventoryOrg: '',
  557. deliveryInventoryOrgName: '',
  558. billType: '',
  559. code: '',
  560. billDate: '',
  561. allotType: '',
  562. deliveryCode: '',
  563. storageCode: '',
  564. storageInventoryOrg: '',
  565. storageInventoryOrgName: '',
  566. businessPersonal: '',
  567. businessPersonalName: '',
  568. deliveryDept: '',
  569. deliveryDeptName: '',
  570. currency: '',
  571. currencyName: '',
  572. rate: 1,
  573. onRouteAffilliation: '',
  574. qty: '',
  575. accountPath: '',
  576. customer: '',
  577. customerName: '',
  578. deliveryWarehouse: '',
  579. deliveryWarehouseName: '',
  580. storageWarehouse: '',
  581. storageWarehouseName: '',
  582. materialProject: '',
  583. liacenter: '',
  584. liacenterName: '',
  585. sourceIdentification: '',
  586. isSendWms: '',
  587. status: '0',
  588. tenantId: '',
  589. revision: '',
  590. createByName: '',
  591. updateByName: '',
  592. delFlag: '',
  593. },
  594. referCondition: {
  595. type: '',
  596. isPage: true,
  597. title: '',
  598. },
  599. options: [{
  600. value: '0', label: '是',
  601. }, {
  602. value: '2', label: '否'
  603. }],
  604. tableIndex: null,
  605. chuOrgOptions: [],
  606. ruOrgOptions:[],
  607. manOptions: [],
  608. deptOptions: [],
  609. currencyOptions: [],
  610. liacenterOptions: [],
  611. basicRules: {},
  612. materialInfo: [],
  613. receiveInfo: [],
  614. priceList: [],
  615. resultList: [],
  616. }
  617. },
  618. created() {
  619. if(this.pageStu == 'check') {
  620. console.log('数据', this.row)
  621. this.getDetails(this.row)
  622. } else if(this.pageStu == 'edit') {
  623. this.getDetails(this.row)
  624. }
  625. },
  626. methods: {
  627. save() {
  628. if(this.pageStu == 'add') {
  629. this.basicForm.stAllotMaterialList = this.materialInfo
  630. this.basicForm.stAllotReceiveDeliverList = this.receiveInfo
  631. this.basicForm.stAllotReceiveExecuteList = this.priceList
  632. this.basicForm.stAllotReceiveExpenseList = this.resultList
  633. addOrder(this.basicForm).then(res => {
  634. if (res.code === 200) {
  635. this.$modal.msgSuccess("保存成功");
  636. this.back()
  637. }
  638. })
  639. } else if (this.pageStu == 'edit') {
  640. this.basicForm.stAllotMaterialList = this.materialInfo
  641. this.basicForm.stAllotReceiveDeliverList = this.receiveInfo
  642. this.basicForm.stAllotReceiveExecuteList = this.priceList
  643. this.basicForm.stAllotReceiveExpenseList = this.resultList
  644. editOrder(this.basicForm).then(res => {
  645. if (res.code === 200) {
  646. this.$modal.msgSuccess("编辑成功");
  647. this.back()
  648. }
  649. })
  650. }
  651. },
  652. back() {
  653. this.$emit('jugislist', true)
  654. let queryParams = {
  655. pageNum: 1,
  656. pageSize: 10
  657. }
  658. this.$emit('refresh', queryParams)
  659. },
  660. // 如果需要回显则调用详情接口
  661. getDetails(row) {
  662. getOrderDetail(row.id).then(res => {
  663. if (res.code === 200) {
  664. this.basicForm = res.data
  665. this.materialInfo = res.data.stAllotMaterialList
  666. this.receiveInfo = res.data.stAllotReceiveDeliverList
  667. this.priceList = res.data.stAllotReceiveExecuteList
  668. this.resultList = res.data.stAllotReceiveExpenseList
  669. }
  670. })
  671. },
  672. addLine() {
  673. const newLine = {
  674. rowno: null,
  675. material: null,
  676. materialName: null,
  677. deliveryCode: null,
  678. storageCode: null,
  679. specification: null,
  680. manufacturer: null,
  681. originPlace: null,
  682. originPlaceName: null,
  683. model: null,
  684. unit: null,
  685. unitName: null,
  686. deliveryWarehouseName: null,
  687. qty: null,
  688. mainUnit: null,
  689. mainUnitName: null,
  690. equation: '1/1',
  691. mainQty: null,
  692. rate: '0.00',
  693. storageWarehouseName: null,
  694. patchNo: null,
  695. producBatch: null,
  696. manufactureDate: null,
  697. periodEndDate: null,
  698. ratifyCode: null,
  699. registration: null,
  700. productCode: null,
  701. commonCode: null,
  702. drug: null,
  703. ruleDetail: null,
  704. marketingApprovalPersonal: null,
  705. production: null,
  706. pi: null,
  707. classify: null,
  708. customerLogistic: null,
  709. customerLogisticName: null
  710. }
  711. this.materialInfo.push(newLine)
  712. },
  713. delLine(index) {
  714. console.log('删除行:', index)
  715. this.materialInfo.splice(index, 1)
  716. },
  717. chooseRefer(type, isPage, title) {
  718. this.referCondition.type = type
  719. this.referCondition.isPage = isPage
  720. this.referCondition.title = title
  721. this.$refs.refer.init(this.referCondition)
  722. },
  723. selectionsToInput(selection) {
  724. if (this.referCondition.title == '调出库存组织') {
  725. this.chuOrgOptions = selection
  726. this.basicForm.deliveryInventoryOrg = selection[0].id
  727. this.basicForm.deliveryInventoryOrgName = selection[0].name
  728. }
  729. if (this.referCondition.title == '调入库存组织') {
  730. this.ruOrgOptions = selection
  731. this.basicForm.storageInventoryOrg = selection[0].id
  732. this.basicForm.storageInventoryOrgName = selection[0].name
  733. this.basicForm.onRouteAffilliation = selection[0].name
  734. }
  735. if (this.referCondition.title == '调出业务员') {
  736. this.manOptions = selection
  737. this.basicForm.businessPersonal = selection[0].code
  738. this.basicForm.businessPersonalName = selection[0].name
  739. }
  740. if (this.referCondition.title == '调出部门') {
  741. this.deptOptions = selection
  742. this.basicForm.deliveryDept = selection[0].id
  743. this.basicForm.deliveryDeptName = selection[0].name
  744. }
  745. if (this.referCondition.title == '币种') {
  746. this.currencyOptions = selection
  747. this.basicForm.currency = selection[0].id
  748. this.basicForm.currencyName = selection[0].name
  749. }
  750. },
  751. chooseTreeRefer(type, isPage, title) {
  752. this.referCondition.type = type
  753. this.referCondition.isPage = isPage
  754. this.referCondition.title = title
  755. this.$refs.tree.init(this.referCondition)
  756. },
  757. selectionsToInput2(selection) {
  758. this.liacenterOptions.push(selection)
  759. this.basicForm.liacenter = selection.id
  760. this.basicForm.liacenterName = selection.name
  761. },
  762. // 明细行选择物料编码带出数据
  763. chooseMaterial(index) {
  764. console.log("🚀 ~ file: add.vue:790 ~ chooseMaterial ~ index:", index)
  765. this.tableIndex = index
  766. this.$refs.materialRefer.init()
  767. },
  768. selectMaterial(selection) {
  769. console.log('选中的物料', selection)
  770. this.materialInfo[this.tableIndex].material = selection[0].code
  771. this.materialInfo[this.tableIndex].materialName = selection[0].name
  772. this.materialInfo[this.tableIndex].specification = selection[0].specification
  773. this.materialInfo[this.tableIndex].model = selection[0].model
  774. this.materialInfo[this.tableIndex].originPlace = selection[0].originPlace
  775. this.materialInfo[this.tableIndex].originPlaceName = selection[0].originPlaceName
  776. this.materialInfo[this.tableIndex].unit = selection[0].unitId
  777. this.materialInfo[this.tableIndex].mainUnit = selection[0].unitId
  778. this.materialInfo[this.tableIndex].unitName = selection[0].unitIdName
  779. this.materialInfo[this.tableIndex].mainUnitName = selection[0].unitIdName
  780. this.materialInfo[this.tableIndex].manufacturer = selection[0].manufacturerIdName
  781. this.materialInfo[this.tableIndex].marketingApprovalPersonal = selection[0].registrant
  782. this.materialInfo[this.tableIndex].production = selection[0].productionPermit
  783. },
  784. }
  785. }
  786. </script>
  787. <style lang="scss" scoped>
  788. .btn_group {
  789. width: 100%;
  790. margin: 20px 0;
  791. display: flex;
  792. justify-content: center;
  793. }
  794. .btn_grooup {
  795. margin-bottom: 10px;
  796. display: flex;
  797. justify-content: flex-end;
  798. }
  799. .hang {
  800. margin: auto;
  801. }
  802. .hang ::v-deep .el-form-item__content{
  803. margin-left: 0px !important;
  804. }
  805. </style>