acceptDetail.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. <template>
  2. <div>
  3. <!-- 采购订单受理待确认详情 -->
  4. <!-- <div class="common-card">
  5. <h3>订单状态</h3>
  6. <yl-step></yl-step>
  7. </div> -->
  8. <div class="common-card">
  9. <h3>基本信息</h3>
  10. <el-form
  11. :model="listForm"
  12. ref="listform"
  13. label-width="237px"
  14. class="grid-form-class"
  15. >
  16. <div class="form-body">
  17. <div class="flex-css">
  18. <el-form-item label="采购单号" prop="id">
  19. <div class="content">
  20. {{ listForm.id }}
  21. </div>
  22. </el-form-item>
  23. <el-form-item label="采购品种" prop="detlCnt">
  24. <div class="content">
  25. {{ listForm.detlCnt }}
  26. </div>
  27. </el-form-item>
  28. <el-form-item label="总数量" prop="qtySum">
  29. <div class="content">
  30. {{ listForm.qtySum }}
  31. </div>
  32. </el-form-item>
  33. </div>
  34. <div class="flex-css">
  35. <el-form-item label="总金额" prop="purcAmt">
  36. <div class="content">
  37. {{ listForm.purcAmt }}
  38. </div>
  39. </el-form-item>
  40. <el-form-item label="客户名称" prop="branchName">
  41. <div class="content">
  42. {{ listForm.branchName }}
  43. </div>
  44. </el-form-item>
  45. <el-form-item label="来源部门" prop="deptName">
  46. <div class="content">
  47. {{ listForm.deptName }}
  48. </div>
  49. </el-form-item>
  50. </div>
  51. <div class="flex-css">
  52. <el-form-item label="当前状态" prop="stas">
  53. <div class="content">
  54. {{ listForm.stas }}
  55. </div>
  56. </el-form-item>
  57. <el-form-item label="采购时间" prop="docmkDate">
  58. <div class="content">
  59. {{ listForm.docmkDate }}
  60. </div>
  61. </el-form-item>
  62. <el-form-item label=" " prop="">
  63. <div class="content">
  64. <!-- {{ listForm.docmker }} -->
  65. </div>
  66. </el-form-item>
  67. </div>
  68. </div>
  69. </el-form>
  70. </div>
  71. <div class="common-card">
  72. <h3>商品明细</h3>
  73. <el-form :model="listQuery" ref="listQuery" :inline="true" label-width="90px">
  74. <el-form-item size="mini" label="生产企业" prop="prodEntp" class="long">
  75. <el-input v-model="listQuery.prodEntp" placeholder="请输入生产企业"></el-input>
  76. </el-form-item>
  77. <el-form-item size="mini" label="是否集采" prop="isFas" class="long">
  78. <el-select v-model="listQuery.isFas" placeholder="请选择是否集采" clearable>
  79. <el-option
  80. v-for="item in isFasData"
  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 size="mini" label="注册证号" prop="regcertno" class="long">
  88. <el-input v-model="listQuery.regcertno" placeholder="请输入注册证号"></el-input>
  89. </el-form-item>
  90. <el-form-item>
  91. <el-button type="primary" @click="getData()">查询</el-button>
  92. <el-button @click="reset">重置</el-button>
  93. </el-form-item>
  94. </el-form>
  95. <el-form :model="list">
  96. <el-table
  97. v-loading="listLoading"
  98. element-loading-text="加载中"
  99. :data="list"
  100. fit
  101. stripe
  102. border
  103. >
  104. <template slot="empty">
  105. <img src="@/assets/nopage.png" alt />
  106. <p>暂无数据</p>
  107. </template>
  108. <el-table-column fixed type="index" label="序号" width="60" />
  109. <el-table-column label="耗材编码" prop="prodCode" />
  110. <el-table-column label="医保编码" prop="hiCode" />
  111. <el-table-column label="耗材信息" width="300">
  112. <template slot-scope="scope">
  113. <mcs-info :info="scope.row"></mcs-info>
  114. </template>
  115. </el-table-column>
  116. <el-table-column label="规格" prop="spec" />
  117. <el-table-column label="型号" prop="mol" />
  118. <el-table-column label="材质" prop="matl" />
  119. <el-table-column label="是否集采" prop="isFas" >
  120. <template #default="{ row }">
  121. <span v-if="row.isFas == '1'">否</span>
  122. <span v-if="row.isFas == '0'">是</span>
  123. </template>
  124. </el-table-column>
  125. <!-- <el-table-column label="计价单位" prop="prcUnt" /> -->
  126. <!-- <el-table-column label="采购单位" prop="purcUnt" /> -->
  127. <!-- <el-table-column label="包装内数量" prop="convrat" /> -->
  128. <el-table-column label="包装" prop="convrat" >
  129. <template #default="{ row }">
  130. <span>{{row.purcUnt}} ({{row.convrat}}{{row.prcUnt}}/{{row.purcUnt}})</span>
  131. </template>
  132. </el-table-column>
  133. <el-table-column label="采购数量" prop="purcCnt" />
  134. <el-table-column label="采购价" prop="purcPric" >
  135. <template #default="{ row }">
  136. <span>{{row.purcPric}}元/{{row.prcUnt}}</span>
  137. </template>
  138. </el-table-column>
  139. <el-table-column label="总金额" prop="purcAmt" />
  140. <el-table-column label="驳回原因" prop="rejtRea" width="200">
  141. <template slot-scope="scope">
  142. <el-form-item
  143. label-width="0"
  144. class="item"
  145. :prop="scope.$index + '.rejtRea'"
  146. >
  147. <el-input placeholder="请输入" v-model="scope.row.rejtRea" :readonly="!scope.row.flag"></el-input>
  148. </el-form-item>
  149. </template>
  150. </el-table-column>
  151. <el-table-column label="是否驳回" width="100">
  152. <template slot-scope="scope">
  153. <el-switch v-model="scope.row.flag" @change="handleSwitch(scope.$index,scope.row)" :disabled="!isShow"></el-switch>
  154. </template>
  155. </el-table-column>
  156. <el-table-column label="备注" prop="memo" width="200">
  157. <template slot-scope="scope">
  158. <el-form-item
  159. label-width="0"
  160. class="item"
  161. :prop="scope.$index + '.memo'"
  162. >
  163. <el-input placeholder="请输入" v-model="scope.row.memo"></el-input>
  164. </el-form-item>
  165. </template>
  166. </el-table-column>
  167. </el-table>
  168. </el-form>
  169. <div class="foot-button">
  170. <el-button type="primary" v-if="isShow" @click="handleAccept" :loading="aaLoad"
  171. >确 认</el-button
  172. >
  173. <el-button type="primary" @click="handleBack">取 消</el-button>
  174. </div>
  175. </div>
  176. </div>
  177. </template>
  178. <script>
  179. import ylStep from "@/components/yl-step";
  180. import mcsInfo from "@/views/components/mcs-info.vue";
  181. import ylPagination from "@/components/yl-pagination";
  182. import { getMcsDetlList, acpMcsOrd } from "@/api/orderManage-sup/index";
  183. export default {
  184. components: {
  185. ylStep,
  186. ylPagination,
  187. mcsInfo,
  188. },
  189. data() {
  190. return {
  191. listForm: {
  192. id: "",
  193. detlCnt: "",
  194. qtySum: "",
  195. purcAmt: "",
  196. docmker: "",
  197. docmkDate: "",
  198. stas: "",
  199. deptName: "",
  200. },
  201. listLoading: false,
  202. list: [],
  203. aaLoad: false,
  204. isShow: false,
  205. stasOptions: [
  206. { value: "A", lable: "未受理" },
  207. { value: "B", lable: "已受理" },
  208. { value: "R", lable: "被驳回" },
  209. { value: "C", lable: "已出库" },
  210. { value: "D", lable: "部分出库" },
  211. { value: "Y", lable: "已入库" },
  212. { value: "P", lable: "部分入库" },
  213. ],
  214. listQuery:{
  215. prodEntp: "",
  216. isFas: "",
  217. regcertno: "",
  218. },
  219. isFasData: [
  220. { value: "0", name: "是" },
  221. { value: "1", name: "否" },
  222. ],
  223. };
  224. },
  225. created() {
  226. if (this.$route.query.stas == "A") {
  227. this.isShow = true;
  228. } else {
  229. this.isShow = false;
  230. }
  231. this.listForm.id = this.$route.query.id;
  232. this.listForm.detlCnt = this.$route.query.detlCnt;
  233. this.listForm.purcAmt = this.$route.query.purcAmt;
  234. this.listForm.qtySum = this.$route.query.qtySum;
  235. this.listForm.docmker = this.$route.query.docmker;
  236. this.listForm.docmkDate = this.$route.query.docmkDate;
  237. this.listForm.deptName = this.$route.query.deptName;
  238. this.listForm.branchName = this.$route.query.branchName;
  239. this.stasOptions.forEach((i) => {
  240. if (i.value == this.$route.query.stas) {
  241. this.listForm.stas = i.lable;
  242. }
  243. });
  244. this.getData();
  245. },
  246. methods: {
  247. getData() {
  248. this.listLoading = true;
  249. getMcsDetlList(
  250. { id: this.$route.query.id,
  251. spdId:this.$route.query.spdId,
  252. prodEntp:this.listQuery.prodEntp,
  253. isFas:this.listQuery.isFas,
  254. regcertno:this.listQuery.regcertno,
  255. })
  256. .then((res) => {
  257. this.list = res.data;
  258. this.list.forEach((i) => {
  259. if (i.rejtRea) {
  260. i.flag = true;
  261. }
  262. });
  263. this.listLoading = false;
  264. })
  265. .catch((err) => {
  266. this.listLoading = false;
  267. });
  268. },
  269. // 是否驳回开关
  270. handleSwitch(index, row) {
  271. console.log(row.flag);
  272. console.log(row);
  273. if (row.flag == false) {
  274. row.rejtRea = "";
  275. } else {
  276. }
  277. },
  278. // 受理
  279. handleAccept() {
  280. this.list.forEach((e) => {
  281. if (e.flag == true && !e.rejtRea) {
  282. this.$message({
  283. message: "选择是否驳回后请填写驳回原因",
  284. type: "warning",
  285. });
  286. throw new Error("选择是否驳回后请填写驳回原因");
  287. }
  288. });
  289. this.$confirm("确认受理", "提示", {
  290. confirmButtonText: "确定",
  291. cancelButtonText: "取消",
  292. type: "warning",
  293. }).then(() => {
  294. // let data = this.list.filter((i) => {
  295. // if (i.flag == true) {
  296. // return i;
  297. // }
  298. // });
  299. // let data2 = data.map((i) => {
  300. // if(i.flag == true){
  301. // return { id: i.id, memo: i.memo };
  302. // }
  303. // });
  304. let arr =[]
  305. let arr1 =[]
  306. this.list.forEach((i)=>{
  307. if (i.flag == true) {
  308. arr.push({ id: i.id, rejtRea: i.rejtRea,memo:i.memo, stas:"R" })
  309. }
  310. else{ arr1.push({ id: i.id, stas:"B",memo:i.memo, })
  311. }
  312. })
  313. let data2 = arr.concat(arr1);
  314. let data3 = {
  315. id: this.$route.query.id,
  316. spdId: this.$route.query.spdId,
  317. rejtList: data2,
  318. };
  319. this.aaLoad = true;
  320. acpMcsOrd(data3)
  321. .then((res) => {
  322. this.aaLoad = false;
  323. this.$router.push("purOrderAccept");
  324. })
  325. .catch((err) => {
  326. this.aaLoad = false;
  327. });
  328. });
  329. },
  330. // 返回
  331. handleBack() {
  332. this.$router.push({
  333. name: "purOrderAccept",
  334. query:{spdId:this.$route.query.spdId,activeName:this.$route.query.activeName}
  335. });
  336. },
  337. // 重置
  338. reset(){
  339. this.$refs.listQuery.resetFields();
  340. this.getData()
  341. }
  342. },
  343. };
  344. </script>
  345. <style lang="scss" scoped></style>