catalogdetailsadd.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958
  1. <template>
  2. <!-- 非挂网目录新增 -->
  3. <div>
  4. <el-tabs v-model="activeName" @tab-click="handleClick">
  5. <el-tab-pane label="基础信息" name="first">
  6. <el-form
  7. :model="infoData"
  8. ref="planForm"
  9. label-width="150px"
  10. class="grid-form-class"
  11. >
  12. <div class="common-card">
  13. <h3>商品基本资料</h3>
  14. <!-- <div class="right-type" style="color: #3c64dc; font-weight: 800">
  15. {{ $store.state.user.username }}
  16. </div> -->
  17. <div class="form-body">
  18. <div class="flex-css">
  19. <el-form-item label="耗材名称" prop="prodName" :rules="rules.required">
  20. <el-input
  21. v-model="infoData.prodName"
  22. placeholder="请输入耗材名称"
  23. maxlength="50"
  24. ></el-input>
  25. </el-form-item>
  26. <el-form-item label="通用名称" prop="genName" :rules="rules.required">
  27. <el-input
  28. v-model="infoData.genName"
  29. placeholder="请输入通用名称"
  30. maxlength="50"
  31. ></el-input>
  32. </el-form-item>
  33. <el-form-item label="英文名称" prop="engName" :rules="rules.InterEng">
  34. <el-input
  35. v-model="infoData.engName"
  36. placeholder="请输入英文名称"
  37. maxlength="50"
  38. ></el-input>
  39. </el-form-item>
  40. </div>
  41. <div class="flex-css">
  42. <el-form-item label="品牌" prop="brad">
  43. <el-input
  44. v-model="infoData.brad"
  45. maxlength="50"
  46. placeholder="请输入品牌"
  47. ></el-input>
  48. </el-form-item>
  49. <el-form-item
  50. label="生产来源"
  51. prop="prodSouc"
  52. :rules="rules.selectRequired"
  53. >
  54. <el-select
  55. v-model="infoData.prodSouc"
  56. placeholder="请选择生产来源"
  57. clearable
  58. >
  59. <el-option
  60. v-for="item in sourceData"
  61. :key="item.value"
  62. :label="item.name"
  63. :value="item.value"
  64. ></el-option>
  65. </el-select>
  66. </el-form-item>
  67. <el-form-item label="生产企业" prop="prodEntp" :rules="rules.required">
  68. <el-input
  69. v-model="infoData.prodEntp"
  70. maxlength="50"
  71. placeholder="请输入生产企业"
  72. ></el-input>
  73. </el-form-item>
  74. </div>
  75. <div class="flex-css">
  76. <el-form-item label="代理企业" prop="agnt" :rules="rules.required">
  77. <el-input
  78. v-model="infoData.agnt"
  79. placeholder="请输入代理企业"
  80. maxlength="50"
  81. ></el-input>
  82. </el-form-item>
  83. <!-- -->
  84. <el-form-item label="规格" prop="spec" :rules="rules.required">
  85. <el-input
  86. v-model="infoData.spec"
  87. placeholder="请输入规格"
  88. maxlength="50"
  89. ></el-input>
  90. </el-form-item>
  91. <el-form-item label="型号" prop="mol" :rules="rules.required">
  92. <el-input
  93. v-model="infoData.mol"
  94. placeholder="请输入型号"
  95. maxlength="50"
  96. ></el-input>
  97. </el-form-item>
  98. </div>
  99. <div class="flex-css">
  100. <el-form-item label="材质" prop="matl" :rules="rules.required">
  101. <el-input
  102. v-model="infoData.matl"
  103. placeholder="请输入材质"
  104. maxlength="50"
  105. ></el-input>
  106. </el-form-item>
  107. <el-form-item label="包装材质" prop="pacmatl" :rules="rules.required">
  108. <el-input
  109. v-model="infoData.pacmatl"
  110. placeholder="请输入包装材质"
  111. maxlength="50"
  112. ></el-input>
  113. </el-form-item>
  114. <el-form-item label="注册证号" prop="regcertno" :rules="rules.required">
  115. <el-input
  116. v-model="infoData.regcertno"
  117. placeholder="请输入注册证号"
  118. maxlength="50"
  119. ></el-input>
  120. </el-form-item>
  121. </div>
  122. <!-- <div class="flex-css">
  123. <el-form-item label="挂网价格" prop="pubonlnPric" :rules="rules.numPotNo">
  124. <el-input
  125. v-model="infoData.pubonlnPric"
  126. placeholder="请输入挂网价格"
  127. maxlength="50"
  128. ></el-input>
  129. </el-form-item>
  130. </div> -->
  131. </div>
  132. </div>
  133. <div class="common-card">
  134. <h3>商品属性资料</h3>
  135. <div class="form-body">
  136. <div class="flex-css">
  137. <!-- <el-form-item label="商品大类" prop="prodType" :rules="rules.required">
  138. <el-select v-model="infoData.prodType" placeholder="请选择商品大类" clearable>
  139. <el-option
  140. v-for="item in prodTypeData"
  141. :key="item.value"
  142. :label="item.name"
  143. :value="item.value"
  144. ></el-option>
  145. </el-select>
  146. </el-form-item> -->
  147. <el-form-item
  148. label="耗材类别"
  149. prop="mcsType"
  150. :rules="rules.selectRequired"
  151. >
  152. <el-select
  153. v-model="infoData.mcsType"
  154. placeholder="请选择耗材类别"
  155. clearable
  156. >
  157. <el-option
  158. v-for="item in mcsTypeData"
  159. :key="item.value"
  160. :label="item.name"
  161. :value="item.value"
  162. ></el-option>
  163. </el-select>
  164. </el-form-item>
  165. <el-form-item label="是否集采" prop="isFas" :rules="rules.selectRequired">
  166. <el-select
  167. v-model="infoData.isFas"
  168. placeholder="请选择是否集采"
  169. clearable
  170. @change="clearType"
  171. >
  172. <el-option
  173. v-for="item in iFjcData"
  174. :key="item.value"
  175. :label="item.name"
  176. :value="item.value"
  177. ></el-option>
  178. </el-select>
  179. </el-form-item>
  180. </div>
  181. <div class="flex-css">
  182. <el-form-item
  183. label="集采批次"
  184. prop="fasBtch"
  185. v-if="infoData.isFas == '1'"
  186. :rules="rules.required"
  187. >
  188. <el-input
  189. v-model="infoData.fasBtch"
  190. placeholder="请输入集采批次"
  191. maxlength="50"
  192. ></el-input>
  193. </el-form-item>
  194. <el-form-item
  195. label="是否寄售"
  196. prop="isCgmt"
  197. :rules="rules.selectRequired"
  198. >
  199. <el-select
  200. v-model="infoData.isCgmt"
  201. placeholder="请选择是否寄售"
  202. clearable
  203. >
  204. <el-option
  205. v-for="item in iFjcData"
  206. :key="item.value"
  207. :label="item.name"
  208. :value="item.value"
  209. ></el-option>
  210. </el-select>
  211. </el-form-item>
  212. <!-- <el-form-item label="是否十八项重点耗材" prop="isEm" :rules="rules.selectRequired">
  213. <el-select v-model="infoData.isEm" placeholder="请选择是否十八项重点耗材" clearable>
  214. <el-option
  215. v-for="item in iFjcData"
  216. :key="item.value"
  217. :label="item.name"
  218. :value="item.value"
  219. ></el-option>
  220. </el-select>
  221. </el-form-item> -->
  222. </div>
  223. </div>
  224. </div>
  225. <div class="common-card">
  226. <h3>耗材编码资料</h3>
  227. <div class="form-body">
  228. <div class="flex-css">
  229. <el-form-item label="医保编码" prop="hiCode" :rules="rules.required">
  230. <el-input
  231. v-model="infoData.hiCode"
  232. placeholder="请输入医保编码"
  233. maxlength="50"
  234. ></el-input>
  235. </el-form-item>
  236. </div>
  237. </div>
  238. </div>
  239. <div class="common-card">
  240. <h3>商品包装资料</h3>
  241. <div class="form-body">
  242. <div class="flex-css">
  243. <el-form-item
  244. label="最小单位"
  245. prop="prcUnt"
  246. :rules="rules.selectRequired"
  247. >
  248. <el-select
  249. v-model="infoData.prcUnt"
  250. placeholder="请选择最小单位"
  251. clearable
  252. >
  253. <el-option
  254. v-for="item in purcUntData"
  255. :key="item.value"
  256. :label="item.label"
  257. :value="item.label"
  258. ></el-option>
  259. </el-select>
  260. </el-form-item>
  261. <el-form-item label="采购价" prop="purcPric" :rules="rules.numPot4">
  262. <template slot-scope="{}" slot="label">
  263. <span>采购价</span>
  264. <el-tooltip class="item" effect="dark" placement="top">
  265. <i
  266. class="el-icon-question"
  267. style="font-size: 14px; vertical-align: middle"
  268. ></i>
  269. <div slot="content">最小单位采购价</div>
  270. </el-tooltip>
  271. </template>
  272. <el-input
  273. v-model="infoData.purcPric"
  274. maxlength="50"
  275. placeholder="请输入采购价"
  276. ></el-input>
  277. </el-form-item>
  278. </div>
  279. <div class="flex-css">
  280. <el-form-item
  281. label="采购单位"
  282. prop="purcUnt"
  283. :rules="rules.selectRequired"
  284. >
  285. <el-select
  286. v-model="infoData.purcUnt"
  287. placeholder="请选择采购单位"
  288. clearable
  289. >
  290. <el-option
  291. v-for="item in prcUntData"
  292. :key="item.value"
  293. :label="item.label"
  294. :value="item.label"
  295. ></el-option>
  296. </el-select>
  297. </el-form-item>
  298. <el-form-item label="包装内数量" prop="convrat" :rules="rules.InterNum">
  299. <template slot-scope="{}" slot="label">
  300. <span>包装内数量</span>
  301. <el-tooltip class="item" effect="dark" placement="top">
  302. <i
  303. class="el-icon-question"
  304. style="font-size: 14px; vertical-align: middle"
  305. ></i>
  306. <div slot="content">包含最小单位的数量</div>
  307. </el-tooltip>
  308. </template>
  309. <template>
  310. <el-input
  311. v-model="infoData.convrat"
  312. placeholder="请输入包装内数量"
  313. maxlength="50"
  314. ></el-input>
  315. </template>
  316. </el-form-item>
  317. </div>
  318. </div>
  319. </div>
  320. <div class="common-card">
  321. <h3>其他资料</h3>
  322. <div class="form-body">
  323. <div class="flex-css">
  324. <el-form-item
  325. label="存储方式"
  326. prop="stogType"
  327. :rules="rules.selectRequired"
  328. >
  329. <el-select
  330. v-model="infoData.stogType"
  331. placeholder="请选择存储方式"
  332. clearable
  333. >
  334. <el-option
  335. v-for="item in stogTypeData"
  336. :key="item.value"
  337. :label="item.name"
  338. :value="item.name"
  339. ></el-option>
  340. </el-select>
  341. </el-form-item>
  342. <el-form-item
  343. label="存储温度"
  344. prop="stogTemp"
  345. :rules="rules.selectRequired"
  346. >
  347. <el-select
  348. v-model="infoData.stogTemp"
  349. placeholder="请选择存储温度"
  350. clearable
  351. >
  352. <el-option
  353. v-for="item in stogTempData"
  354. :key="item.value"
  355. :label="item.name"
  356. :value="item.name"
  357. ></el-option>
  358. </el-select>
  359. </el-form-item>
  360. <el-form-item
  361. label="是否灭菌"
  362. prop="isStlz"
  363. :rules="rules.selectRequired"
  364. >
  365. <el-select
  366. v-model="infoData.isStlz"
  367. placeholder="请选择是否灭菌"
  368. clearable
  369. >
  370. <el-option
  371. v-for="item in isStlzdata"
  372. :key="item.value"
  373. :label="item.name"
  374. :value="item.name"
  375. ></el-option>
  376. </el-select>
  377. </el-form-item>
  378. </div>
  379. </div>
  380. </div>
  381. </el-form>
  382. <div class="foot-button" v-if="btnShow">
  383. <el-button type="success" @click="handleSave" :loading="saveLoad"
  384. >保存</el-button
  385. >
  386. <el-button type="primary" @click="handleSubmit" :loading="submitLoad"
  387. >提交</el-button
  388. >
  389. <el-button type="info" @click="handleBack"
  390. >返回</el-button
  391. >
  392. </div>
  393. </el-tab-pane>
  394. <el-tab-pane label="资质信息" name="second">
  395. <div class="common-card">
  396. <div>
  397. <h3>商品资质</h3>
  398. <!-- <div class="right-type">
  399. <el-button
  400. style="margin-bottom: 10px"
  401. type="primary"
  402. @click="handleAdd('one')"
  403. >添加资质</el-button
  404. >
  405. </div> -->
  406. </div>
  407. <el-table
  408. v-loading="listLoading"
  409. element-loading-text="加载中"
  410. :data="list"
  411. fit
  412. stripe
  413. border
  414. >
  415. <template slot="empty">
  416. <img src="@/assets/nopage.png" alt />
  417. <p>暂无数据</p>
  418. </template>
  419. <el-table-column fixed type="index" label="序号" width="60" />
  420. <el-table-column label="资质证书信息" prop="quaName"> </el-table-column>
  421. <el-table-column label="资质证书编号" prop="quaCode" />
  422. <el-table-column label="发证日期" prop="issuDate" />
  423. <el-table-column label="截止日期" prop="endDate" />
  424. <el-table-column label="资质证件" prop="fileId">
  425. <template slot-scope="scope">
  426. <yl-upload
  427. :fileId="scope.row.fileId"
  428. readonly
  429. v-if="scope.row.fileId"
  430. >
  431. </yl-upload>
  432. </template>
  433. </el-table-column>
  434. <el-table-column label="备注" prop="memo" />
  435. </el-table>
  436. </div>
  437. <div class="common-card">
  438. <div>
  439. <h3>生产厂商资质</h3>
  440. <!-- <div class="right-type">
  441. <el-button
  442. style="margin-bottom: 10px"
  443. type="primary"
  444. @click="handleAdd1('two')"
  445. >添加资质</el-button
  446. >
  447. </div> -->
  448. </div>
  449. <el-table
  450. v-loading="listLoading"
  451. element-loading-text="加载中"
  452. :data="listC"
  453. fit
  454. stripe
  455. border
  456. >
  457. <template slot="empty">
  458. <img src="@/assets/nopage.png" alt />
  459. <p>暂无数据</p>
  460. </template>
  461. <el-table-column fixed type="index" label="序号" width="60" />
  462. <el-table-column label="资质证书信息" prop="quaName"> </el-table-column>
  463. <el-table-column label="资质证书编号" prop="quaCode" />
  464. <el-table-column label="发证日期" prop="issuDate" />
  465. <el-table-column label="截止日期" prop="endDate" />
  466. <el-table-column label="资质证件" prop="fileId">
  467. <template slot-scope="scope">
  468. <yl-upload
  469. :fileId="scope.row.fileId"
  470. readonly
  471. v-if="scope.row.fileId"
  472. >
  473. </yl-upload>
  474. </template>
  475. </el-table-column>
  476. <el-table-column label="备注" prop="memo" />
  477. </el-table>
  478. </div>
  479. </el-tab-pane>
  480. </el-tabs>
  481. <el-dialog
  482. class="addclass"
  483. width="30%"
  484. :title="textMap[dialogStatus]"
  485. :close-on-click-modal="false"
  486. :visible.sync="dialogFormVisible"
  487. v-if="dialogFormVisible"
  488. >
  489. <el-form label-width="120px" :model="addform" ref="addForm">
  490. <el-form-item
  491. label="资质证书信息"
  492. prop="quaName"
  493. :rules="rules.selectRequired"
  494. >
  495. <el-select v-model.trim="addform.quaName" placeholder="请选择资质证书信息">
  496. <el-option
  497. v-for="item in qualData"
  498. :key="item.id"
  499. :label="item.dicVal"
  500. :value="item.dicVal"
  501. clearable
  502. ></el-option>
  503. </el-select>
  504. </el-form-item>
  505. <el-form-item label="资质证书编号" prop="quaCode" :rules="rules.required">
  506. <el-input
  507. v-model="addform.quaCode"
  508. placeholder="请输入资质证书编号"
  509. maxlength="50"
  510. ></el-input>
  511. </el-form-item>
  512. <el-form-item label="发证时间" prop="issuDate" :rules="rules.dateRequired">
  513. <el-date-picker
  514. v-model.trim="addform.issuDate"
  515. type="date"
  516. :picker-options="TimeOption1"
  517. placeholder="选择日期"
  518. value-format="yyyy-MM-dd"
  519. ></el-date-picker>
  520. </el-form-item>
  521. <el-form-item label="截止时间" prop="endDate" :rules="rules.dateRequired">
  522. <el-date-picker
  523. v-model.trim="addform.endDate"
  524. type="date"
  525. :picker-options="TimeOption"
  526. placeholder="选择日期"
  527. value-format="yyyy-MM-dd"
  528. ></el-date-picker>
  529. </el-form-item>
  530. <el-form-item label="资质证件" prop="fileId" :rules="rules.uploadRequired">
  531. <yl-upload :fileId="addform.fileId" @getUpload="getUpload" urlName="acco">
  532. <template v-slot:dec>只能上传pdf文件</template>
  533. </yl-upload>
  534. <!-- <yl-upload
  535. v-else
  536. :fileId="addform.fileId"
  537. readonly
  538. >
  539. </yl-upload> -->
  540. </el-form-item>
  541. <el-form-item label="备注" prop="memo">
  542. <el-input
  543. v-model="addform.memo"
  544. placeholder="请输入备注"
  545. maxlength="50"
  546. ></el-input>
  547. </el-form-item>
  548. </el-form>
  549. <div slot="footer">
  550. <el-button @click="dialogFormVisible = false">取 消</el-button>
  551. <el-button
  552. type="primary"
  553. v-preventReClick
  554. v-loading="loading1"
  555. @click="handledialog()"
  556. >确 定</el-button
  557. >
  558. </div>
  559. </el-dialog>
  560. </div>
  561. </template>
  562. <script>
  563. import ylStep from "@/components/yl-step";
  564. import ylUpload from "@/components/yl-upload";
  565. import { selectMcsListById, insertSplerMcsList,insertMcsQua,
  566. insertFacQua, } from "@/api/consumCataManage-sup/index";
  567. import rules from "@/utils/rules";
  568. export default {
  569. components: { ylUpload, ylStep },
  570. data() {
  571. return {
  572. activeName: "first",
  573. saveLoad: false,
  574. submitLoad: false,
  575. rules,
  576. infoData: {
  577. spdId: "",
  578. materialId: "",
  579. prodName: "",
  580. hiCode: "",
  581. isFas: "",
  582. fasBtch: "",
  583. spec: "",
  584. mol: "",
  585. matl: "",
  586. pacmatl: "",
  587. prodSouc: "",
  588. regcertno: "",
  589. prodentpCode: null,
  590. prodEntp: "",
  591. purcPric: null,
  592. status: "",
  593. isPub: "0",
  594. },
  595. listLoading: false,
  596. planForm: {},
  597. sourceData: [
  598. { value: "1", name: "国产" },
  599. { value: "2", name: "进口" },
  600. ],
  601. iFjcData: [
  602. { value: "1", name: "是" },
  603. { value: "0", name: "否" },
  604. ],
  605. mcsTypeData: [
  606. { value: "0", name: "普通耗材" },
  607. { value: "1", name: "高值耗材" },
  608. { value: "2", name: "试剂" },
  609. ],
  610. prodTypeData: [
  611. { value: "0", name: "医用耗材" },
  612. { value: "1", name: "办公用品" },
  613. ],
  614. stogTypeData: [
  615. { value: "常温", name: "常温" },
  616. { value: "冷藏", name: "冷藏" },
  617. { value: "冷冻", name: "冷冻" },
  618. ],
  619. stogTempData: [
  620. { value: "15℃-25℃", name: "15℃-25℃" },
  621. { value: "2℃-8℃", name: "2℃-8℃" },
  622. { value: "-10℃-2℃", name: "-10℃-2℃" },
  623. ],
  624. isStlzdata: [
  625. { value: "灭菌", name: "灭菌" },
  626. { value: "非灭菌", name: "非灭菌" },
  627. ],
  628. purcUntData: [
  629. // 最小单位
  630. { value: "箱", label: "箱" },
  631. { value: "包", label: "包" },
  632. { value: "袋", label: "袋" },
  633. { value: "盒", label: "盒" },
  634. { value: "瓶", label: "瓶" },
  635. { value: "根", label: "根" },
  636. { value: "片", label: "片" },
  637. { value: "贴", label: "贴" },
  638. { value: "件", label: "件" },
  639. { value: "条", label: "条" },
  640. { value: "只", label: "只" },
  641. { value: "块", label: "块" },
  642. { value: "枚", label: "枚" },
  643. { value: "捆", label: "捆" },
  644. { value: "束", label: "束" },
  645. { value: "斤", label: "斤" },
  646. { value: "个", label: "个" },
  647. { value: "支", label: "支" },
  648. { value: "台", label: "台" },
  649. { value: "克", label: "克" },
  650. { value: "张", label: "张" },
  651. { value: "辆", label: "辆" },
  652. { value: "具", label: "具" },
  653. { value: "米", label: "米" },
  654. { value: "批", label: "批" },
  655. { value: "盘", label: "盘" },
  656. { value: "把", label: "把" },
  657. { value: "对", label: "对" },
  658. { value: "盆", label: "盆" },
  659. { value: "套", label: "套" },
  660. { value: "轴", label: "轴" },
  661. { value: "板", label: "板" },
  662. { value: "本", label: "本" },
  663. { value: "公斤", label: "公斤" },
  664. { value: "万只", label: "万只" },
  665. { value: "卷", label: "卷" },
  666. { value: "付", label: "付" },
  667. { value: "桶", label: "桶" },
  668. { value: "节", label: "节" },
  669. { value: "打", label: "打" },
  670. ],
  671. prcUntData: [
  672. { value: "箱", label: "箱" },
  673. { value: "包", label: "包" },
  674. { value: "袋", label: "袋" },
  675. { value: "盒", label: "盒" },
  676. { value: "大包", label: "大包" },
  677. { value: "大袋", label: "大袋" },
  678. { value: "大盒", label: "大盒" },
  679. { value: "中包", label: "中包" },
  680. { value: "中袋", label: "中袋" },
  681. { value: "中盒", label: "中盒" },
  682. { value: "小包", label: "小包" },
  683. { value: "小袋", label: "小袋" },
  684. { value: "小盒", label: "小盒" },
  685. { value: "瓶", label: "瓶" },
  686. { value: "个", label: "个" },
  687. { value: "根", label: "根" },
  688. { value: "管", label: "管" },
  689. { value: "件", label: "件" },
  690. { value: "颗", label: "颗" },
  691. { value: "支", label: "支" },
  692. { value: "只", label: "只" },
  693. { value: "把", label: "把" },
  694. { value: "罐", label: "罐" },
  695. { value: "杯", label: "杯" },
  696. { value: "对", label: "对" },
  697. { value: "枚", label: "枚" },
  698. { value: "套", label: "套" },
  699. { value: "条", label: "条" },
  700. { value: "桶", label: "桶" },
  701. { value: "张", label: "张" },
  702. { value: "束", label: "束" },
  703. ],
  704. btnShow: true,
  705. dialogFormVisible: false,
  706. loading1: false,
  707. addform: {
  708. splerId: "",
  709. hiCode: "",
  710. quaName: "",
  711. quaCode: "",
  712. issuDate: "",
  713. endDate: "",
  714. fileId: "",
  715. memo:"",
  716. },
  717. textMap: {
  718. one: "商品资质",
  719. two: "生产厂商资质",
  720. },
  721. dialogStatus: "",
  722. list: [],
  723. listC: [],
  724. editCode: true,
  725. qualData:[
  726. {id:"1",dicVal:"商品授权书"},
  727. {id:"2",dicVal:"商品注册证"}
  728. ],
  729. TimeOption: {
  730. disabledDate(time) {
  731. return time.getTime() < Date.now();
  732. },
  733. },
  734. TimeOption1: {
  735. disabledDate(time) {
  736. return time.getTime() > Date.now();
  737. },
  738. },
  739. };
  740. },
  741. created() {
  742. // if (this.$route.query.status == "B") {
  743. // this.btnShow = false;
  744. // }else if(this.$route.query.status=="D"){
  745. // this.reaDiv = true
  746. // }
  747. // this.getData()
  748. },
  749. methods: {
  750. getUpload(id) {
  751. this.temp.fileId = id;
  752. if (id) {
  753. this.$refs.dataForm.clearValidate("fileId");
  754. } else {
  755. this.$refs.dataForm.validateField("fileId");
  756. }
  757. },
  758. // 信息保存
  759. handleSave() {
  760. // this.$refs["planForm"].validate((valid) => {
  761. // if (valid) {
  762. this.$confirm("确认保存", "提示", {
  763. confirmButtonText: "确定",
  764. cancelButtonText: "取消",
  765. type: "warning",
  766. })
  767. .then(() => {
  768. this.saveLoad = true;
  769. this.infoData.spdId = this.$route.query.spdId;
  770. this.infoData.status = "A";
  771. this.infoData.opeType = "新增";
  772. insertSplerMcsList(this.infoData)
  773. .then((response) => {
  774. this.$message({
  775. message: "保存成功",
  776. type: "success",
  777. });
  778. this.saveLoad = false;
  779. })
  780. .catch(() => {
  781. this.saveLoad = false;
  782. });
  783. })
  784. .catch(() => {});
  785. // }
  786. // });
  787. },
  788. // 整体提交
  789. handleSubmit() {
  790. this.$refs["planForm"].validate((valid) => {
  791. if (valid) {
  792. this.$confirm("确认提交", "提示", {
  793. confirmButtonText: "确定",
  794. cancelButtonText: "取消",
  795. type: "warning",
  796. })
  797. .then(() => {
  798. this.submitLoad = true;
  799. this.infoData.status = "B";
  800. this.infoData.opeType = "新增";
  801. insertSplerMcsList(this.infoData)
  802. .then((response) => {
  803. this.$message({
  804. message: "提交成功",
  805. type: "success",
  806. });
  807. this.submitLoad = false;
  808. this.$router.push({
  809. name: "consumCataManagement-sup",
  810. query: { spdId: this.$route.query.spdId },
  811. });
  812. })
  813. .catch(() => {
  814. this.submitLoad = false;
  815. });
  816. })
  817. .catch(() => {});
  818. }
  819. });
  820. },
  821. // 集采类型
  822. clearType() {
  823. this.infoData.fasBtch = "";
  824. },
  825. // 新增资质
  826. handleAdd(type) {
  827. this.addform={
  828. splerId: "",
  829. hiCode: "",
  830. quaName: "",
  831. quaCode: "",
  832. issuDate: "",
  833. endDate: "",
  834. fileId: "",
  835. memo:"",
  836. },
  837. this.dialogFormVisible = true;
  838. this.dialogStatus = type;
  839. this.$nextTick(() => {
  840. this.$refs.addForm.resetFields()
  841. })
  842. },
  843. handleAdd1(type) {
  844. this.addform={
  845. splerId: "",
  846. quaName: "",
  847. quaCode: "",
  848. issuDate: "",
  849. endDate: "",
  850. fileId: "",
  851. memo:"",
  852. prodEntp: "",
  853. },
  854. this.dialogFormVisible = true;
  855. this.dialogStatus = type;
  856. this.$nextTick(() => {
  857. this.$refs.addForm.resetFields()
  858. })
  859. },
  860. getUpload(id) {
  861. this.addform.fileId = id;
  862. if (id) {
  863. this.$refs.addForm.clearValidate("fileId");
  864. } else {
  865. this.$refs.addForm.validateField("fileId");
  866. }
  867. },
  868. // 确认
  869. handledialog() {
  870. this.$refs["addForm"].validate((valid) => {
  871. if (valid) {
  872. this.$confirm("确认提交", "提示", {
  873. confirmButtonText: "确定",
  874. cancelButtonText: "取消",
  875. type: "warning",
  876. })
  877. .then(() => {
  878. this.loading1 = true;
  879. if (this.dialogStatus == "one") {
  880. this.addform.splerId = this.$store.state.user.orgId;
  881. this.addform.hiCode = this.infoData.hiCode
  882. insertMcsQua(this.addform)
  883. .then((response) => {
  884. this.$message({
  885. message: "提交成功",
  886. type: "success",
  887. });
  888. this.loading1 = false;
  889. this.dialogFormVisible = false;
  890. this.activeName = "second"
  891. if (this.$route.query.type == "modify") {
  892. this.getData1();
  893. } else {
  894. this.getData();
  895. }
  896. })
  897. .catch(() => {
  898. this.loading1 = false;
  899. this.$message({
  900. message: "提交失败",
  901. type: "error",
  902. });
  903. });
  904. } else if (this.dialogStatus == "two") {
  905. this.addform.splerId = this.$store.state.user.orgId;
  906. this.addform.prodEntp = this.infoData.prodEntp
  907. insertFacQua(this.addform)
  908. .then((response) => {
  909. this.$message({
  910. message: "提交成功",
  911. type: "success",
  912. });
  913. this.loading1 = false;
  914. this.dialogFormVisible = false
  915. this.loading1 = false;
  916. this.dialogFormVisible = false;
  917. this.activeName = "second"
  918. if (this.$route.query.type == "modify") {
  919. this.getData1();
  920. } else {
  921. this.getData();
  922. }
  923. })
  924. .catch(() => {
  925. this.loading1 = false;
  926. this.$message({
  927. message: "提交失败",
  928. type: "error",
  929. });
  930. });
  931. }
  932. })
  933. .catch(() => {});
  934. }
  935. });
  936. },
  937. handleBack() {
  938. this.$router.push({
  939. name: "distributionmanage",
  940. query: {spdId: this.$route.query.spdId },
  941. });
  942. },
  943. },
  944. };
  945. </script>
  946. <style scoped lang="scss">
  947. // ::v-deep .el-input__inner {
  948. // width: 300px;
  949. // }
  950. .addclass ::v-deep .el-input__inner {
  951. width: 260px;
  952. }
  953. </style>