catalogdetails.vue 35 KB

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