add.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
  1. <template>
  2. <div class="apply_add">
  3. <el-tabs type="border-card" v-model="tabValue" @tab-click="handleClick">
  4. <el-tab-pane label="基本信息" name="first">
  5. <el-form :model="basicForm" :rules="basicRules" ref="basic" label-width="170px">
  6. <el-row :gutter="20">
  7. <el-col :span="8">
  8. <el-form-item label="单据编码" prop="code">
  9. <el-input disabled v-model="basicForm.code"></el-input>
  10. </el-form-item>
  11. </el-col>
  12. <el-col :span="8">
  13. <el-form-item label="所属组织" prop="orgId">
  14. <el-input disabled v-model="basicForm.orgId"></el-input>
  15. </el-form-item>
  16. </el-col>
  17. <el-col :span="8">
  18. <el-form-item label="物料编码" prop="materialCode">
  19. <el-input readonly :disabled="disable" v-model="basicForm.materialCode">
  20. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test01"></el-button>
  21. </el-input>
  22. </el-form-item>
  23. </el-col>
  24. </el-row>
  25. <el-row :gutter="20">
  26. <el-col :span="8">
  27. <el-form-item label="物料名称" prop="materialName">
  28. <el-input :disabled="disable" v-model="basicForm.materialName"></el-input>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="8">
  32. <el-form-item label="医药物料" prop="medicineMaterial">
  33. <el-select
  34. v-model="basicForm.medicineMaterial"
  35. placeholder="医药物料"
  36. clearable
  37. :disabled="disable"
  38. @change="controlMedic"
  39. >
  40. <el-option
  41. v-for="item in options"
  42. :key="item.value"
  43. :label="item.label"
  44. :value="item.value"
  45. />
  46. </el-select>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="8">
  50. <el-form-item label="物料分类" prop="materialClassifyId">
  51. <el-input readonly :disabled="disable" v-model="basicForm.fourClass">
  52. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="chooseFourClass"></el-button>
  53. </el-input>
  54. <el-input v-show="false" readonly :disabled="disable" v-model="basicForm.materialClassifyId"></el-input>
  55. </el-form-item>
  56. </el-col>
  57. </el-row>
  58. <el-row :gutter="20">
  59. <el-col :span="8">
  60. <el-form-item label="规格" prop="specification">
  61. <el-input :disabled="disable" v-model="basicForm.specification"></el-input>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="8">
  65. <el-form-item label="型号" prop="model">
  66. <el-input :disabled="disable" v-model="basicForm.model"></el-input>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="8">
  70. <el-form-item label="生产厂家/代理人" prop="factory">
  71. <el-select
  72. ref="factoryOrman"
  73. v-model="basicForm.factory"
  74. placeholder="生产厂家/代理人"
  75. clearable
  76. :disabled="disable"
  77. @focus="chooseFactory"
  78. >
  79. <el-option
  80. v-for="item in factoryOptions"
  81. :key="item.id"
  82. :label="item.name"
  83. :value="item.id"
  84. />
  85. </el-select>
  86. <!-- <el-input :disabled="disable" v-model="basicForm.factory">
  87. <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
  88. </el-input> -->
  89. </el-form-item>
  90. </el-col>
  91. </el-row>
  92. <el-row :gutter="20">
  93. <el-col :span="8">
  94. <el-form-item label="注册人/上市许可持有人" prop="registrant">
  95. <el-input :disabled="disable" v-model="basicForm.registrant"></el-input>
  96. </el-form-item>
  97. </el-col>
  98. <el-col :span="8">
  99. <el-form-item label="存储条件" prop="storageConditions">
  100. <el-select
  101. v-model="basicForm.storageConditions"
  102. placeholder="存储条件"
  103. clearable
  104. :disabled="disable"
  105. >
  106. <el-option
  107. v-for="dict in dict.type.sys_storage_condition"
  108. :key="dict.value"
  109. :label="dict.label"
  110. :value="dict.value"
  111. />
  112. </el-select>
  113. </el-form-item>
  114. </el-col>
  115. <el-col :span="8">
  116. <el-form-item label="运输条件" prop="transportCondition">
  117. <el-select
  118. v-model="basicForm.transportCondition"
  119. placeholder="运输条件"
  120. clearable
  121. :disabled="disable"
  122. >
  123. <el-option
  124. v-for="dict in dict.type.sys_conditions_carriage"
  125. :key="dict.value"
  126. :label="dict.label"
  127. :value="dict.value"
  128. />
  129. </el-select>
  130. </el-form-item>
  131. </el-col>
  132. </el-row>
  133. <el-row :gutter="20">
  134. <el-col :span="8">
  135. <el-form-item label="交货周期" prop="leadTime">
  136. <el-input type="number" min="0" :disabled="disable" v-model="basicForm.leadTime"></el-input>
  137. </el-form-item>
  138. </el-col>
  139. <el-col :span="8">
  140. <el-form-item label="备注" prop="remark">
  141. <el-input :disabled="disable" v-model="basicForm.remark"></el-input>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :span="8">
  145. <el-form-item label="一级分类" prop="oneClass">
  146. <el-input readonly disabled v-model="basicForm.oneClass"></el-input>
  147. </el-form-item>
  148. </el-col>
  149. </el-row>
  150. <el-row :gutter="20">
  151. <el-col :span="8">
  152. <el-form-item label="二级分类" prop="twoClass">
  153. <el-input readonly disabled v-model="basicForm.twoClass"></el-input>
  154. </el-form-item>
  155. </el-col>
  156. <el-col :span="8">
  157. <el-form-item label="三级分类" prop="threeClass">
  158. <el-input readonly disabled v-model="basicForm.threeClass"></el-input>
  159. </el-form-item>
  160. </el-col>
  161. <el-col :span="8">
  162. <el-form-item label="四级分类" prop="fourClass">
  163. <el-input readonly disabled v-model="basicForm.fourClass">
  164. </el-input>
  165. </el-form-item>
  166. </el-col>
  167. </el-row>
  168. </el-form>
  169. </el-tab-pane>
  170. <el-tab-pane label="医药属性" name="second">
  171. <el-form :model="basicForm2" ref="basic2" label-width="160px">
  172. <el-row :gutter="20">
  173. <el-col :span="8">
  174. <el-form-item label="药品" prop="drug">
  175. <el-select
  176. v-model="basicForm2.drug"
  177. placeholder="请选择"
  178. clearable
  179. :disabled="disable || isControl"
  180. >
  181. <el-option
  182. v-for="dict in dict.type.sys_medicine"
  183. :key="dict.value"
  184. :label="dict.label"
  185. :value="dict.value"
  186. />
  187. </el-select>
  188. </el-form-item>
  189. </el-col>
  190. <el-col :span="8">
  191. <el-form-item label="注册证号/备案凭证编号" prop="registrationNo">
  192. <el-input :disabled="disable || isControl" v-model="basicForm2.registrationNo"></el-input>
  193. </el-form-item>
  194. </el-col>
  195. <el-col :span="8">
  196. <el-form-item label="医疗器械" prop="medicalDevices">
  197. <el-select
  198. v-model="basicForm2.medicalDevices"
  199. placeholder="请选择"
  200. clearable
  201. :disabled="disable || isControl"
  202. >
  203. <el-option
  204. v-for="dict in dict.type.medical_instruments"
  205. :key="dict.value"
  206. :label="dict.label"
  207. :value="dict.value"
  208. />
  209. </el-select>
  210. </el-form-item>
  211. </el-col>
  212. </el-row>
  213. <el-row :gutter="20">
  214. <el-col :span="8">
  215. <el-form-item label="养护类型" prop="maintenanceType">
  216. <el-select
  217. v-model="basicForm2.maintenanceType"
  218. placeholder="请选择"
  219. clearable
  220. :disabled="disable || isControl"
  221. >
  222. <el-option
  223. v-for="dict in dict.type.curing_type"
  224. :key="dict.value"
  225. :label="dict.label"
  226. :value="dict.value"
  227. />
  228. </el-select>
  229. </el-form-item>
  230. </el-col>
  231. </el-row>
  232. </el-form>
  233. <!-- <el-row style="margin-bottom: 12px;">
  234. <span>物料类别</span>
  235. </el-row>
  236. <el-row style="margin-bottom: 12px;">
  237. <el-button type="primary" size="small" plain @click="addLine">新增</el-button>
  238. <el-button type="primary" size="small" plain @click="handleDelete">删除</el-button>
  239. <el-button type="primary" size="small" plain @click="testsave">暂存</el-button>
  240. </el-row> -->
  241. <!-- <el-row>
  242. <el-col :span="12">
  243. <el-table
  244. :data="basicForm2.medicineTypeChanges"
  245. class="request-table"
  246. @selection-change="handleSelectionChange"
  247. >
  248. <el-table-column type="selection" width="55" />
  249. <el-table-column label="序号" align="center" prop="sort">
  250. <template slot-scope="scope">
  251. <el-input v-model="scope.row.sort"></el-input>
  252. </template>
  253. </el-table-column>
  254. <el-table-column label="物料类别" align="center" prop="medicineCode">
  255. <template slot-scope="scope">
  256. <el-input v-model="scope.row.medicineCode"></el-input>
  257. </template>
  258. </el-table-column>
  259. <el-table-column label="类别名称" align="center" prop="medicineName">
  260. <template slot-scope="scope">
  261. <el-input v-model="scope.row.medicineName"></el-input>
  262. </template>
  263. </el-table-column>
  264. </el-table>
  265. </el-col>
  266. </el-row> -->
  267. </el-tab-pane>
  268. <el-tab-pane label="修改记录" name="third">
  269. <el-table
  270. :data="basicForm.changeRecords"
  271. class="request-table"
  272. >
  273. <el-table-column label="字段名称" align="center" prop="pageCondtion" />
  274. <el-table-column label="变更前" align="center" prop="beforeChangeValue" />
  275. <el-table-column label="变更后" align="center" prop="afterChangeValue" />
  276. </el-table>
  277. </el-tab-pane>
  278. <el-tab-pane label="单据信息" name="fourth">
  279. <el-form :model="basicForm" ref="info" label-width="160px">
  280. <el-row :gutter="20">
  281. <el-col :span="8">
  282. <el-form-item label="申请人" prop="createByName">
  283. <el-input disabled v-model="basicForm.createByName"></el-input>
  284. </el-form-item>
  285. </el-col>
  286. <el-col :span="8">
  287. <el-form-item label="申请时间" prop="createTime">
  288. <el-input disabled v-model="basicForm.createTime"></el-input>
  289. </el-form-item>
  290. </el-col>
  291. <el-col :span="8">
  292. <el-form-item label="创建人" prop="createByName">
  293. <el-input disabled v-model="basicForm.createByName"></el-input>
  294. </el-form-item>
  295. </el-col>
  296. </el-row>
  297. <el-row :gutter="20">
  298. <el-col :span="8">
  299. <el-form-item label="创建时间" prop="createTime">
  300. <el-input disabled v-model="basicForm.createTime"></el-input>
  301. </el-form-item>
  302. </el-col>
  303. <el-col :span="8">
  304. <el-form-item label="最后修改人" prop="updateByName">
  305. <el-input disabled v-model="basicForm.updateByName"></el-input>
  306. </el-form-item>
  307. </el-col>
  308. <el-col :span="8">
  309. <el-form-item label="最后修改时间" prop="updateTime">
  310. <el-input disabled v-model="basicForm.updateTime"></el-input>
  311. </el-form-item>
  312. </el-col>
  313. </el-row>
  314. <el-row :gutter="20">
  315. <el-col :span="8">
  316. <el-form-item label="最后审核人" prop="approver">
  317. <el-input disabled v-model="basicForm.approver"></el-input>
  318. </el-form-item>
  319. </el-col>
  320. <el-col :span="8">
  321. <el-form-item label="最后审核时间" prop="approvalTime">
  322. <el-input disabled v-model="basicForm.approvalTime"></el-input>
  323. </el-form-item>
  324. </el-col>
  325. <el-col :span="8">
  326. <el-form-item label="单据状态" prop="status">
  327. <el-select
  328. v-model="basicForm.status"
  329. size="small"
  330. disabled
  331. >
  332. <el-option
  333. v-for="item in statusOptions"
  334. :key="item.value"
  335. :label="item.label"
  336. :value="item.value">
  337. </el-option>
  338. </el-select>
  339. <!-- <el-input disabled v-model="basicForm.status"></el-input> -->
  340. </el-form-item>
  341. </el-col>
  342. </el-row>
  343. </el-form>
  344. </el-tab-pane>
  345. </el-tabs>
  346. <div class="btn_group">
  347. <el-col :span="1.5">
  348. <el-button type="primary" size="small" plain @click="save" v-if="pageStu == 'add' || pageStu == 'edit'">保存</el-button>
  349. </el-col>
  350. <el-col :span="1.5" style="margin: 0 10px;">
  351. <el-button type="primary" size="small" plain @click="submit" v-if="pageStu == 'edit'">提交</el-button>
  352. </el-col>
  353. <el-col :span="1.5">
  354. <el-button type="primary" size="small" plain @click="back">返回</el-button>
  355. </el-col>
  356. </div>
  357. <popDialog
  358. ref="contractSelect"
  359. @doSubmit="selectionsToInput"
  360. :selectData="selectData"
  361. :single="true"
  362. />
  363. <factory
  364. ref="factory"
  365. @doSubmit="acceptFactory"
  366. :selectData="selectData2"
  367. :single="true"
  368. />
  369. <fourClass
  370. ref="fourClass"
  371. @doSubmit="acceptFourClass"
  372. :selectData="selectData3"
  373. :single="true"
  374. />
  375. </div>
  376. </template>
  377. <script>
  378. import popDialog from '@/components/PopDialog/index.vue'
  379. import factory from '@/components/PopDialog/productFactory.vue'
  380. import { addChangeList, getMaterialDetails, getChangeDetails, editChangeList } from '@/api/changeApply/basic'
  381. // 生产厂商/代理人调用用于回显
  382. import { getProductFactory } from '@/api/changeApply/basic'
  383. // 四级分类
  384. import fourClass from '@/components/PopDialog/fourClass.vue'
  385. // 调用物料分类详情接口用于数据回显
  386. import { getDetail } from '@/api/classify/basic';
  387. export default {
  388. name: 'applyAdd',
  389. dicts: ['sys_storage_condition', 'sys_conditions_carriage', 'sys_medicine', 'medical_instruments', 'curing_type'],
  390. components: {
  391. popDialog,
  392. factory,
  393. fourClass
  394. },
  395. props: ['pageStu', 'row', 'disable'],
  396. model: {
  397. prop: 'isList',
  398. event: 'jugislist'
  399. },
  400. data() {
  401. return{
  402. factoryOptions: [],
  403. tabValue: 'first',
  404. isControl: true,
  405. basicForm: {
  406. code: '',
  407. orgId: '德荣集团',
  408. // 物料id
  409. materialId:'',
  410. materialCode: '',
  411. materialName: '',
  412. materialClassifyId: '',
  413. medicineMaterial: '2',
  414. oneClass: '',
  415. twoClass: '',
  416. threeClass: '',
  417. fourClass: '',
  418. specification: '',
  419. model: '',
  420. factory: '',
  421. registrant: '',
  422. storageConditions: '',
  423. transportCondition: '',
  424. leadTime: '',
  425. remark: '',
  426. // 修改记录
  427. changeRecords: [],
  428. // 单据信息字段
  429. createBy: '',
  430. applicationTime: '',
  431. createTime:'',
  432. updateBy: '',
  433. updateTime: '',
  434. approver: '',
  435. approvalTime: '',
  436. status: ''
  437. },
  438. options: [{
  439. value: '0',
  440. label: '是'
  441. },{
  442. value: '2',
  443. label: '否'
  444. }],
  445. statusOptions: [{
  446. value: 0, label: '未提交'
  447. },{
  448. value: 1, label: '审批中'
  449. },{
  450. value: 2, label: '已完成'
  451. },{
  452. value: 3, label: '已驳回'
  453. },],
  454. basicRules: {
  455. materialCode: [{ required: true, message: '请选择物料编码', trigger: 'blur' }],
  456. materialName: [{required: true, message: '请填写物料名称', trigger: 'blur'}],
  457. specification: [{required: true, message: '请填写规格', trigger: 'blur'}],
  458. materialClassifyId: [{required: true, message: '请选择物料分类', trigger: 'blur'}],
  459. model: [{required: true, message: '请填写型号', trigger: 'blur'}],
  460. factory: [{required: true, message: '请选择生产厂家/代理人', trigger: 'blur'}],
  461. registrant: [{required: true, message: '请填写注册人/上市许可持有人', trigger: 'blur'}],
  462. storageConditions: [{required: true, message: '请选择存储条件', trigger: 'blur'}],
  463. transportCondition: [{required: true, message: '请选择运输条件', trigger: 'blur'}],
  464. leadTime: [{required: true, message: '请填写交货周期', trigger: 'blur'}],
  465. },
  466. basicForm2: {
  467. drug: '',
  468. registrationNo: '',
  469. medicalDevices: '',
  470. maintenanceType: '',
  471. // 医药属性子表
  472. // medicineTypeChanges:[
  473. // ],
  474. },
  475. // tableList: [],
  476. // 子表选中
  477. ids: [],
  478. // 弹窗
  479. name: '',
  480. selectData: [],
  481. selectData2: [],
  482. selectData3: []
  483. }
  484. },
  485. // watch: {
  486. // value: {
  487. // handler (newVal) {
  488. // this.selectData = []
  489. // if (newVal) {
  490. // newVal.split(',').forEach((id) => { // 回显拿数据
  491. // this.contractService.queryById(id).then(({data}) => {
  492. // if (data && data.id !== '') {
  493. // this.selectData.push(data)
  494. // }
  495. // })
  496. // })
  497. // }
  498. // },
  499. // immediate: true,
  500. // deep: false
  501. // },
  502. // selectData: {
  503. // handler (newVal) {
  504. // this.name = newVal.map(contract => contract.contractName).join(',')
  505. // },
  506. // immediate: false,
  507. // deep: false
  508. // }
  509. // },
  510. mounted() {
  511. this.$nextTick(() => {
  512. // console.log('页面状态',this.pageStu)
  513. if(this.pageStu == 'check') {
  514. // alert('详情页面:')
  515. console.log('页面状态',this.pageStu)
  516. console.log('数据', this.row)
  517. this.getDetails(this.row)
  518. // 生产厂家代理人用于回显
  519. if (this.row.factory) {
  520. this.getFactoryDetails(this.row.factory)
  521. }
  522. } else if (this.pageStu == 'edit') {
  523. // alert('修改页面')
  524. console.log('页面状态',this.pageStu)
  525. console.log('数据', this.row)
  526. this.getDetails(this.row)
  527. // 控制医药属性是否能够填写
  528. if (this.row.medicineMaterial == '0') {
  529. this.isControl = false
  530. } else {
  531. this.isControl = true
  532. }
  533. // 生产厂家代理人用于回显
  534. if (this.row.factory) {
  535. this.getFactoryDetails(this.row.factory)
  536. }
  537. } else if(this.pageStu == 'add') {
  538. // alert('新增页面')
  539. console.log('页面状态',this.pageStu)
  540. }
  541. })
  542. },
  543. methods: {
  544. // 生产厂家/代理人用于回显
  545. getFactoryDetails(id) {
  546. getProductFactory({id:id}).then(res => {
  547. if(res.code === 200) {
  548. this.factoryOptions = res.data.tableBody
  549. }
  550. })
  551. },
  552. // 选择是否医药物料时控制医药属性
  553. controlMedic(val) {
  554. console.log('val',val)
  555. if (val == '0') {
  556. this.isControl = false
  557. } else {
  558. this.basicForm2.drug = ''
  559. this.basicForm2.registrationNo = ''
  560. this.basicForm2.medicalDevices = ''
  561. this.basicForm2.maintenanceType = ''
  562. this.isControl = true
  563. }
  564. },
  565. handleClick(tab, event) {
  566. console.log(tab, event);
  567. console.log('页面状态',this.pageStu)
  568. },
  569. // 如果是详情进入,则调用详情接口
  570. getDetails(row) {
  571. getChangeDetails(row.id).then(res => {
  572. if(res.code === 200) {
  573. this.basicForm = res.data
  574. if (res.data.medicineChange) {
  575. this.basicForm2 = res.data.medicineChange
  576. }
  577. }
  578. })
  579. },
  580. save() {
  581. // alert('保存传status:0')
  582. let sparams = {...this.basicForm, ...{status: 0}}
  583. sparams.medicineChange = this.basicForm2
  584. console.log('保存参数', sparams)
  585. this.$refs['basic'].validate((valid) => {
  586. if (valid) {
  587. addChangeList(sparams).then(res => {
  588. if(res.code === 200) {
  589. this.$message({
  590. message: res.msg,
  591. type: 'success'
  592. });
  593. this.back()
  594. }
  595. })
  596. }
  597. })
  598. },
  599. submit() {
  600. // alert('提交传status:1')
  601. let sparams = {...this.basicForm, ...{status: 1}}
  602. sparams.medicineChange = this.basicForm2
  603. console.log('提交参数', sparams)
  604. this.$refs['basic'].validate((valid) => {
  605. if(valid) {
  606. editChangeList(sparams).then(res => {
  607. if(res.code === 200) {
  608. this.$message({
  609. message: res.msg,
  610. type: 'success'
  611. });
  612. this.back()
  613. }
  614. })
  615. }
  616. })
  617. },
  618. back() {
  619. this.$emit('jugislist', true)
  620. let queryParams = {
  621. pageNum: 1,
  622. pageSize: 10
  623. }
  624. this.$emit('refresh', queryParams)
  625. },
  626. // 子表增删行
  627. // handleSelectionChange(val) {
  628. // this.ids = val
  629. // console.log('this.ids',this.ids)
  630. // },
  631. // addLine() {
  632. // //添加行数
  633. // let newValue = {
  634. // sort:'',
  635. // medicineCode: '',
  636. // medicineName: '',
  637. // };
  638. // this.basicForm2.medicineTypeChanges.push(newValue);
  639. // },
  640. // handleDelete(index) {
  641. // if(this.ids.length == 0) {
  642. // this.$message({
  643. // message: '请选择删除条目',
  644. // type: 'warning'
  645. // });
  646. // } else {
  647. // // console.log('index',index)
  648. // // this.basicForm2.medicineTypeChanges.splice(index, 1);
  649. // this.basicForm2.medicineTypeChanges = this.basicForm2.medicineTypeChanges.filter(item =>
  650. // !this.ids.some(ele =>
  651. // ele.sort == item.sort))
  652. // }
  653. // },
  654. // testsave() {
  655. // console.log('暂存表格:', this.basicForm2.medicineTypeChanges)
  656. // console.log('暂存表单1', this.basicForm)
  657. // let params = {...this.basicForm, ...this.basicForm2}
  658. // console.log('暂存总表单', params)
  659. // },
  660. // 设置选中
  661. selectionsToInput (selections) {
  662. console.log('父组件拿到的:', selections)
  663. this.selectData = selections
  664. this.$emit('getInfo', this.selectData)
  665. getMaterialDetails(selections[0].id).then(res => {
  666. console.log('res',res)
  667. if (res.code === 200) {
  668. let data = res.data.data
  669. // 物料id
  670. this.basicForm.materialId = data.id
  671. // 物料分类Id
  672. this.basicForm.materialClassifyId = data.classifyId
  673. this.basicForm.materialCode = data.code
  674. this.basicForm.materialName = data.name
  675. this.basicForm.medicineMaterial = data.isMedicine
  676. this.basicForm.oneClass = data.oneClass
  677. this.basicForm.twoClass = data.twoClass
  678. this.basicForm.threeClass = data.threeClass
  679. this.basicForm.fourClass = data.fourClass
  680. this.basicForm.specification = data.specification
  681. this.basicForm.model = data.model
  682. this.basicForm.factory = data.manufacturerId
  683. this.basicForm.registrant = data.registrant
  684. this.basicForm.storageConditions = data.storageCondition
  685. this.basicForm.transportCondition = data.transportationCondition
  686. this.basicForm.leadTime = data.deliveryPeriod
  687. if(data.manufacturerId) {
  688. this.getFactoryDetails(data.manufacturerId)
  689. }
  690. if(data.medcines.length !== 0) {
  691. this.basicForm2.drug = data.medcines[0].isDrug
  692. this.basicForm2.registrationNo = data.medcines[0].registrationNo
  693. this.basicForm2.medicalDevices = data.medcines[0].medicalInstruments
  694. this.basicForm2.maintenanceType = data.medcines[0].curingType
  695. }
  696. }
  697. })
  698. },
  699. // selectionsToInput2 (selections) {
  700. // console.log('选择的数据',selections)
  701. // this.basicForm.factory = selections[0].manufactureName
  702. // },
  703. // 显示列表
  704. test01() {
  705. console.log('测试点击')
  706. this.$refs.contractSelect.init()
  707. },
  708. // test02() {
  709. // console.log('测试弹窗2');
  710. // this.$refs.contractSelect2.init()
  711. // },
  712. // 选择生产厂家/代理人
  713. acceptFactory (selections) {
  714. console.log('选择的数据',selections)
  715. this.factoryOptions = selections
  716. this.basicForm.factory = selections[0].id
  717. this.getFactoryDetails(selections[0].id)
  718. },
  719. // 生产厂家/代理人显示列表
  720. chooseFactory() {
  721. this.$refs.factoryOrman.blur()
  722. this.$refs.factory.init()
  723. },
  724. // 选择四级分类
  725. acceptFourClass(selections) {
  726. console.log('收到的四级分类',selections)
  727. this.basicForm.materialClassifyId = selections.id
  728. this.getTreeDetails(selections.id)
  729. },
  730. // 四级分类显示列表
  731. chooseFourClass() {
  732. this.$refs.fourClass.init()
  733. },
  734. // 选择四级分类后需要根据id再次查询一下123级分类
  735. getTreeDetails(id) {
  736. getDetail(id).then(res => {
  737. if (res.code === 200) {
  738. this.basicForm.oneClass = res.data.oneClass
  739. this.basicForm.twoClass = res.data.twoClass
  740. this.basicForm.threeClass = res.data.threeClass
  741. this.basicForm.fourClass = res.data.fourClass
  742. }
  743. })
  744. },
  745. }
  746. }
  747. </script>
  748. <style lang="scss" scoped>
  749. .apply_add {
  750. height: calc(100vh - 84px);
  751. padding: 12px;
  752. box-sizing: border-box;
  753. overflow-y: auto;
  754. }
  755. .btn_group {
  756. width: 100%;
  757. margin: 20px 0;
  758. display: flex;
  759. justify-content: center;
  760. }
  761. </style>