Browse Source

生产厂商资质菜单

liangbowen 9 months ago
parent
commit
1b07d22425

+ 8 - 0
src/api/qualityManagement-sup/information-filling.js

@@ -25,4 +25,12 @@ export function submitSplerInfo(data) {
         method: "post",
         data
     });
+}
+//厂商资质信息维护
+export function selectFacQua(data) {
+    return request({
+        url: "/web/mcsList/selectFacQua",
+        method: "post",
+        data
+    });
 }

+ 10 - 5
src/layout/components/Navbar.vue

@@ -12,11 +12,11 @@
 
     <div class="right-menu">
       <!-- 通知 -->
-      <div class="right-menu-item" @click="handleBell">
-        <el-badge :value="value" class="item">
+      <!-- <div class="right-menu-item" @click="handleBell">
+        <el-badge :value="uradMess" class="item">
           <img src="@/assets/bell.png" alt="" class="quit" height="25" />
         </el-badge>
-      </div>
+      </div> -->
 
       <!-- 设置 -->
       <el-dropdown class="right-menu-item" trigger="click" size="default">
@@ -64,11 +64,16 @@ export default {
     noticeDialog
   },
   computed: {
-    ...mapGetters(["sidebar", "avatar"]),
+    ...mapGetters(["sidebar", "avatar", "unreadMess"]),
     topNav: {
       get() {
         return this.$store.state.settings.topNav;
       }
+    },
+    uradMess: {
+      get() {
+        return this.$store.state.user.unreadMess;
+      }
     }
   },
   data() {
@@ -102,7 +107,7 @@ $bg_color: #3c64dc;
 
 .navbar {
   height: 50px;
-  box-shadow: 0 1px 4px rgba(0,21,41,.08);
+  box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
   overflow: hidden;
   position: relative;
   background: #fff;

+ 2 - 0
src/router/index.js

@@ -19,6 +19,7 @@ import settlementRouter from "./modules/settlement"; //采购结算---业务对
 import invoiceRouter from "./modules/invoiceManage"; //采购结算---采购发票管理
 import paymentStatusRouter from "./modules/paymentStatus" //付款状态查询--消耗明细
 import mainrTenanceRouter from "./modules/mainrTenance" //申领模板维护
+import mautFillRouter from '././modules/quality-management-sup' //资质管理
 // returnRouter
 
 export const constantRoutes = [
@@ -93,6 +94,7 @@ export const asyncRoutes = [
   invoiceRouter,
   paymentStatusRouter,
   mainrTenanceRouter,
+  mautFillRouter,
   { path: "*", redirect: "/404", hidden: true }
 ];
 

+ 23 - 0
src/router/modules/quality-management-sup.js

@@ -0,0 +1,23 @@
+/** When your routing table is too long, you can split it into small modules**/
+// 厂商资质维护
+import Layout from "@/layout";
+const mainrTenanceRouter = {
+  path: "/quality-management-sup",
+  component: Layout,
+  name: "QualityManagement-sup",
+  meta: { title: "厂商资质维护", icon: "" },
+  alwaysShow: true,
+  hidden: true,
+  children: [
+    {
+      // 新增模板
+      path: "manufacturerDetail",
+      component: () => import("@/views/page/qualityManagement-sup/manufacturer-filling/manufacturerDetail.vue"),
+      name: "manufacturerDetail",
+      meta: { title: "资质详情", icon: "" },
+      hidden: true
+    }
+  ]
+};
+
+export default mainrTenanceRouter;

+ 2 - 1
src/store/getters.js

@@ -4,7 +4,7 @@ const getters = {
   device: state => state.app.device,
   visitedViews: state => state.tagsView.visitedViews,
   cachedViews: state => state.tagsView.cachedViews,
-  topbarRouters:state => state.permission.topbarRouters,
+  topbarRouters: state => state.permission.topbarRouters,
   token: state => state.user.token,
   username: state => state.user.username,
   orgId: state => state.user.orgId,
@@ -14,5 +14,6 @@ const getters = {
   permission_routes: state => state.permission.routes,
   errorLogs: state => state.errorLog.logs,
   topNav: state => state.settings.topNav,
+  unreadMess: (state) => state.user.unreadMess,
 }
 export default getters

+ 26 - 2
src/store/modules/user.js

@@ -2,7 +2,7 @@ import { login, getInfo } from "@/api/user";
 import { getToken, setToken, removeToken } from "@/utils/auth";
 import router, { resetRouter } from "@/router";
 import { functionObj } from "@/utils/functionObj";
-
+import { queryMsgPage } from "@/api/messageCenter/index";
 const state = {
   token: getToken(), //获取token值
   username: "", //获取用户名
@@ -14,7 +14,8 @@ const state = {
   orgType: "", //获取机构类型
   role: [],//获取角色
   userId: '',//获取userId
-  prntId: ''//获取父级id
+  prntId: '',//获取父级id
+  unreadMess:0
 };
 
 const mutations = {
@@ -52,6 +53,9 @@ const mutations = {
   SET_PRNTID: (state, prntId) => {
     state.prntId = prntId
   },
+  SET_MESSAGE: (state, unreadMess) => {
+    state.unreadMess = unreadMess;
+  },
 };
 
 const actions = {
@@ -70,6 +74,26 @@ const actions = {
         });
     });
   },
+  getMessage({ commit }) {
+    return new Promise((resolve, reject) => {
+      queryMsgPage({
+        spdId: "TMYLJT",
+        msgTitle: "",
+        msgType: "",
+        msgStas: "0",
+        current: 1,
+        size: 999999,
+      })
+        .then((response) => {
+          const { data } = response;
+          commit("SET_MESSAGE", data.total || 0);
+          resolve();
+        })
+        .catch((error) => {
+          reject(error);
+        });
+    });
+  },
 
   getInfo({ commit, state }) {
     let token = state.token;

+ 24 - 1
src/views/components/early-warning.vue

@@ -42,6 +42,13 @@ export default {
         return;
       }
       updateMsgStas([{ id: item.id, msgStas: "1" }]).then((res) => {});
+      // 如果是资质到期或是维护直接跳转不请求接口
+      if (item.url == "/web/spler/getUserSplerInfoB") {
+        this.$router.push({
+          name: item.msgRoutePath,
+        });
+        return;
+      }
       reqComData({
         url: item.url,
         body: {
@@ -54,6 +61,21 @@ export default {
             return;
           }
           let rowData = res.data.records[0] || {};
+          if (
+            item.msgTitle == "生产厂商资质到期提醒" ||
+            item.msgTitle == "商品资质到期提醒"
+          ) {
+            this.$router.push({
+              name: item.msgRoutePath,
+              query: {
+                ...rowData,
+                type: "modify",
+                page: "1",
+                opeType: "修改",
+              },
+            });
+            return;
+          }
           this.$router.push({
             name: item.msgRoutePath,
             query: {
@@ -75,7 +97,8 @@ export default {
           url: item.url,
           msgKey: item.msgKey,
           msgRoutePath: item.msgRoutePath,
-          id: this.info.msgId,
+          id: this.info.id,
+          msgTitle: this.info.msgTitle,
           msgValue: item.msgValue,
         })})'>【${item.msgColumn}】</span>`
       );

+ 3 - 3
src/views/login/index.vue

@@ -4,7 +4,7 @@
       <div class="big-title">
         <!-- <h1>云流供应商端耗材管理系统</h1> -->
         <h1>供应链管理系统</h1>
-        <p>云流(北京)科技有限公司山西分公司</p>
+        <p>云流(山西)科技有限公司山西分公司</p>
       </div>
       <div class="banner-container">
         <div class="title-container">
@@ -129,7 +129,7 @@ export default {
   },
   watch: {
     $route: {
-      handler: function (route) {
+      handler: function(route) {
         this.redirect = route.query && route.query.redirect;
       },
       immediate: true
@@ -159,7 +159,7 @@ export default {
           ).toUpperCase()
         };
       }
-      this.$refs.loginForm.validate((valid) => {
+      this.$refs.loginForm.validate(valid => {
         if (valid) {
           this.loading = true;
           this.$store

+ 101 - 203
src/views/page/consumCataManage-sup/catalogdetails.vue

@@ -35,14 +35,22 @@
                     placeholder="请输入耗材名称"
                   ></el-input>
                 </el-form-item>
-                <el-form-item label="通用名称" prop="genName" :rules="rules.required">
+                <el-form-item
+                  label="通用名称"
+                  prop="genName"
+                  :rules="rules.required"
+                >
                   <el-input
                     v-model="infoData.genName"
                     placeholder="请输入通用名称"
                     maxlength="50"
                   ></el-input>
                 </el-form-item>
-                <el-form-item label="英文名称" prop="engName" :rules="rules.InterEng">
+                <el-form-item
+                  label="英文名称"
+                  prop="engName"
+                  :rules="rules.InterEng"
+                >
                   <el-input
                     v-model="infoData.engName"
                     placeholder="请输入英文名称"
@@ -76,7 +84,11 @@
                     ></el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="生产企业" prop="prodEntp" :rules="rules.required">
+                <el-form-item
+                  label="生产企业"
+                  prop="prodEntp"
+                  :rules="rules.required"
+                >
                   <div class="content" v-if="isShow">
                     {{ infoData.prodEntp }}
                   </div>
@@ -89,7 +101,11 @@
                 </el-form-item>
               </div>
               <div class="flex-css">
-                <el-form-item label="代理企业" prop="agnt" :rules="rules.required">
+                <el-form-item
+                  label="代理企业"
+                  prop="agnt"
+                  :rules="rules.required"
+                >
                   <div class="content" v-if="isShow">
                     {{ infoData.agnt }}
                   </div>
@@ -99,7 +115,6 @@
                     placeholder="请输入代理企业"
                   ></el-input>
                 </el-form-item>
-               
 
                 <el-form-item label="规格" prop="spec" :rules="rules.required">
                   <div class="content" v-if="isShow">
@@ -123,7 +138,6 @@
                 </el-form-item>
               </div>
               <div class="flex-css">
-                
                 <el-form-item label="材质" prop="matl" :rules="rules.required">
                   <div class="content" v-if="isShow">
                     {{ infoData.matl }}
@@ -134,7 +148,11 @@
                     placeholder="请输入材质"
                   ></el-input>
                 </el-form-item>
-                <el-form-item label="包装材质" prop="pacmatl" :rules="rules.required">
+                <el-form-item
+                  label="包装材质"
+                  prop="pacmatl"
+                  :rules="rules.required"
+                >
                   <div class="content" v-if="isShow">
                     {{ infoData.pacmatl }}
                   </div>
@@ -144,7 +162,11 @@
                     placeholder="请输入包装材质"
                   ></el-input>
                 </el-form-item>
-                <el-form-item label="注册证号" prop="regcertno" :rules="rules.required">
+                <el-form-item
+                  label="注册证号"
+                  prop="regcertno"
+                  :rules="rules.required"
+                >
                   <div class="content" v-if="isShow">
                     {{ infoData.regcertno }}
                   </div>
@@ -156,15 +178,13 @@
                 </el-form-item>
               </div>
               <div class="flex-css">
-                
-                  
                 <el-form-item label="目录来源" prop="isPub">
                   <div class="content">
                     <span v-if="infoData.isPub == '1'">挂网</span>
                     <span v-if="infoData.isPub == '0'">非挂网</span>
                   </div>
                 </el-form-item>
-                <el-form-item label="挂网价格" prop="pubonlnPric"  v-if="isShow">
+                <el-form-item label="挂网价格" prop="pubonlnPric" v-if="isShow">
                   <el-input
                     v-model="infoData.pubonlnPric"
                     placeholder="请输入挂网价格"
@@ -215,7 +235,11 @@
                     ></el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="是否集采" prop="isFas" :rules="rules.selectRequired">
+                <el-form-item
+                  label="是否集采"
+                  prop="isFas"
+                  :rules="rules.selectRequired"
+                >
                   <div class="content">
                     <span v-if="infoData.isFas == '1'">是</span>
                     <span v-if="infoData.isFas == '0'">否</span>
@@ -287,7 +311,11 @@
             <h3>耗材编码资料</h3>
             <div class="form-body">
               <div class="flex-css">
-                <el-form-item label="医保编码" prop="hiCode" :rules="rules.required">
+                <el-form-item
+                  label="医保编码"
+                  prop="hiCode"
+                  :rules="rules.required"
+                >
                   <div class="content" v-if="editCode">
                     {{ infoData.hiCode }}
                   </div>
@@ -322,7 +350,11 @@
                     ></el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="采购价" prop="purcPric" :rules="rules.numPot4">
+                <el-form-item
+                  label="采购价"
+                  prop="purcPric"
+                  :rules="rules.numPot4"
+                >
                   <template slot-scope="{}" slot="label">
                     <span>采购价</span>
                     <el-tooltip class="item" effect="dark" placement="top">
@@ -359,7 +391,11 @@
                     ></el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="包装内数量" prop="convrat" :rules="rules.InterNum">
+                <el-form-item
+                  label="包装内数量"
+                  prop="convrat"
+                  :rules="rules.InterNum"
+                >
                   <template slot-scope="{}" slot="label">
                     <span>包装内数量</span>
                     <el-tooltip class="item" effect="dark" placement="top">
@@ -444,7 +480,11 @@
           </div>
         </el-form>
         <div class="foot-button">
-          <el-button v-if="btnShow" type="success" @click="handleSave" :loading="saveLoad"
+          <el-button
+            v-if="btnShow"
+            type="success"
+            @click="handleSave"
+            :loading="saveLoad"
             >保存</el-button
           >
           <el-button
@@ -479,50 +519,6 @@
             fit
             stripe
             border
-             :cell-class-name="tableColClassName"
-          >
-            <template slot="empty">
-              <img src="@/assets/nopage.png" alt />
-              <p>暂无数据</p>
-            </template>
-            <el-table-column fixed type="index" label="序号" width="60" />
-            <el-table-column label="资质证书信息" prop="quaName"> </el-table-column>
-            <el-table-column label="资质证书编号" prop="quaCode" />
-            <el-table-column label="发证日期" prop="issuDate" />
-            <el-table-column label="截止日期" prop="endDate" />
-            <el-table-column label="资质证件" prop="fileId">
-              <template slot-scope="scope">
-                <yl-upload
-                  :fileId="scope.row.fileId"
-                  readonly
-                  v-if="scope.row.fileId"
-                >
-                </yl-upload>
-              </template>
-            </el-table-column>
-            <el-table-column label="备注" prop="memo" />
-          </el-table>
-        </div>
-        <div class="common-card">
-          <div>
-            <h3>生产厂商资质</h3>
-            <div class="right-type">
-              <el-button
-                v-if="addBtn"
-                style="margin-bottom: 10px"
-                type="primary"
-                @click="handleAdd1('two')"
-                >添加资质</el-button
-              >
-            </div>
-          </div>
-          <el-table
-            v-loading="listLoading"
-            element-loading-text="加载中"
-            :data="listC"
-            fit
-            stripe
-            border
             :cell-class-name="tableColClassName"
           >
             <template slot="empty">
@@ -530,7 +526,8 @@
               <p>暂无数据</p>
             </template>
             <el-table-column fixed type="index" label="序号" width="60" />
-            <el-table-column label="资质证书信息" prop="quaName"> </el-table-column>
+            <el-table-column label="资质证书信息" prop="quaName">
+            </el-table-column>
             <el-table-column label="资质证书编号" prop="quaCode" />
             <el-table-column label="发证日期" prop="issuDate" />
             <el-table-column label="截止日期" prop="endDate" />
@@ -550,95 +547,6 @@
       </el-tab-pane>
     </el-tabs>
     <!-- </el-card> -->
-    <el-dialog
-      class="addclass"
-      width="30%"
-      :title="textMap[dialogStatus]"
-      :close-on-click-modal="false"
-      :visible.sync="dialogFormVisible"
-      v-if="dialogFormVisible"
-    >
-      <el-form label-width="120px" :model="addform" ref="addForm">
-        <el-form-item
-          label="资质证书信息"
-          prop="quaName"
-          :rules="rules.selectRequired"
-        >
-          <el-input
-            v-model="addform.quaName"
-            placeholder="请输入资质证书信息"
-            maxlength="50"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="资质证书编号" prop="quaCode" :rules="rules.required">
-          <el-input
-            v-model="addform.quaCode"
-            placeholder="请输入资质证书编号"
-            maxlength="50"
-          ></el-input>
-        </el-form-item>
-
-        <el-form-item label="发证时间" prop="issuDate" :rules="rules.dateRequired">
-          <el-date-picker
-            v-model.trim="addform.issuDate"
-            type="date"
-            :picker-options="TimeOption1"
-            placeholder="选择日期"
-            value-format="yyyy-MM-dd"
-          ></el-date-picker>
-        </el-form-item>
-        <el-form-item label="截止时间" prop="endDate" :rules="rules.dateRequired">
-          <el-date-picker
-            v-model.trim="addform.endDate"
-            type="date"
-            :picker-options="TimeOption"
-            placeholder="选择日期"
-            value-format="yyyy-MM-dd"
-          ></el-date-picker>
-        </el-form-item>
-        <!-- <el-form-item label="截止时间" prop="endDate" :rules="rules.required">
-          <el-input
-            v-model="inputDate"
-            placeholder="请输入日期"
-            @change="handleInputDateChange"
-          ></el-input>
-          <el-date-picker
-            v-model="selectedDate"
-            type="date"
-            @change="handleInputDateChange1"
-            placeholder="选择日期"
-          ></el-date-picker> -->
-        </el-form-item>
-        <el-form-item label="资质证件" prop="fileId" :rules="rules.uploadRequired">
-          <yl-upload :fileId="addform.fileId" @getUpload="getUpload" urlName="acco">
-            <template v-slot:dec>只能上传pdf文件</template>
-          </yl-upload>
-          <!-- <yl-upload
-                v-else
-              :fileId="addform.fileId"
-              readonly
-            >
-            </yl-upload> -->
-        </el-form-item>
-        <el-form-item label="备注" prop="memo">
-          <el-input
-            v-model="addform.memo"
-            placeholder="请输入备注"
-            maxlength="50"
-          ></el-input>
-        </el-form-item>
-      </el-form>
-      <div slot="footer">
-        <el-button @click="dialogFormVisible = false">取 消</el-button>
-        <el-button
-          type="primary"
-          v-preventReClick
-          v-loading="loading1"
-          @click="handledialog()"
-          >确 定</el-button
-        >
-      </div>
-    </el-dialog>
   </div>
 </template>
 
@@ -651,7 +559,7 @@ import {
   selectMcsListIntfById,
   insertSplerMcsList,
   insertMcsQua,
-  insertFacQua,
+  insertFacQua
 } from "@/api/consumCataManage-sup/index";
 import moment from "moment";
 import rules from "@/utils/rules";
@@ -666,42 +574,33 @@ export default {
       infoData: { quaList: [] },
       listLoading: false,
       planForm: {},
-      sourceData: [
-        { value: "1", name: "国产" },
-        { value: "2", name: "进口" },
-      ],
-      iFjcData: [
-        { value: "1", name: "是" },
-        { value: "0", name: "否" },
-      ],
+      sourceData: [{ value: "1", name: "国产" }, { value: "2", name: "进口" }],
+      iFjcData: [{ value: "1", name: "是" }, { value: "0", name: "否" }],
       mcsTypeData: [
         { value: "0", name: "普通耗材" },
         { value: "1", name: "高值耗材" },
         { value: "2", name: "试剂" },
-        { value: "3", name: "总务耗材" },
+        { value: "3", name: "总务耗材" }
       ],
       prodTypeData: [
         { value: "0", name: "医用耗材" },
-        { value: "1", name: "办公用品" },
+        { value: "1", name: "办公用品" }
       ],
       stogTypeData: [
         { value: "常温", name: "常温" },
         { value: "冷藏", name: "冷藏" },
-        { value: "冷冻", name: "冷冻" },
+        { value: "冷冻", name: "冷冻" }
       ],
       stogTempData: [
         { value: "15℃-25℃", name: "15℃-25℃" },
         { value: "2℃-8℃", name: "2℃-8℃" },
-        { value: "-10℃-2℃", name: "-10℃-2℃" },
+        { value: "-10℃-2℃", name: "-10℃-2℃" }
       ],
       isStlzdata: [
         { value: "灭菌", name: "灭菌" },
-        { value: "非灭菌", name: "非灭菌" },
-      ],
-      isPubData: [
-        { value: "1", name: "挂网" },
-        { value: "0", name: "非挂网" },
+        { value: "非灭菌", name: "非灭菌" }
       ],
+      isPubData: [{ value: "1", name: "挂网" }, { value: "0", name: "非挂网" }],
       purcUntData: [
         { value: "箱", label: "箱" },
         { value: "包", label: "包" },
@@ -742,7 +641,7 @@ export default {
         { value: "付", label: "付" },
         { value: "桶", label: "桶" },
         { value: "节", label: "节" },
-        { value: "打", label: "打" },
+        { value: "打", label: "打" }
       ],
       prcUntData: [
         { value: "箱", label: "箱" },
@@ -775,7 +674,7 @@ export default {
         { value: "条", label: "条" },
         { value: "桶", label: "桶" },
         { value: "张", label: "张" },
-        { value: "束", label: "束" },
+        { value: "束", label: "束" }
       ],
       btnShow: true,
       reaDiv: false,
@@ -791,11 +690,11 @@ export default {
         issuDate: "",
         endDate: "",
         fileId: "",
-        memo: "",
+        memo: ""
       },
       textMap: {
         one: "耗材资质",
-        two: "生产厂商资质",
+        two: "生产厂商资质"
       },
       dialogStatus: "",
       addBtn: false,
@@ -804,20 +703,20 @@ export default {
       editCode: true,
       qualData: [
         { id: "1", dicVal: "耗材授权书" },
-        { id: "2", dicVal: "耗材注册证" },
+        { id: "2", dicVal: "耗材注册证" }
       ],
       TimeOption: {
         disabledDate(time) {
           return time.getTime() < Date.now();
-        },
+        }
       },
       TimeOption1: {
         disabledDate(time) {
           return time.getTime() > Date.now();
-        },
+        }
       },
       inputDate: "",
-      selectedDate: null,
+      selectedDate: null
     };
   },
   created() {
@@ -890,25 +789,25 @@ export default {
     //获取列表数据
     getData() {
       selectMcsListIntfById({ id: this.$route.query.id })
-        .then((response) => {
+        .then(response => {
           this.infoData = response.data;
           this.list = response.data.mcsQuaList;
           this.listC = response.data.facQuaList;
           this.$refs["planForm"].resetFields();
         })
-        .catch((err) => {
+        .catch(err => {
           this.$message.error("获取数据失败");
         });
     },
     getData1() {
       selectMcsListById({ id: this.$route.query.id })
-        .then((response) => {
+        .then(response => {
           this.infoData = response.data;
           this.list = response.data.mcsQuaList;
           this.listC = response.data.facQuaList;
           this.$refs["planForm"].resetFields();
         })
-        .catch((err) => {
+        .catch(err => {
           this.$message.error("获取数据失败");
         });
     },
@@ -922,7 +821,7 @@ export default {
       this.$confirm("确认保存", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           this.saveLoad = true;
@@ -931,10 +830,10 @@ export default {
             (this.infoData.status = "A");
           // this.infoData.opeType = "修改"
           insertSplerMcsList(this.infoData)
-            .then((response) => {
+            .then(response => {
               this.$message({
                 message: "保存成功",
-                type: "success",
+                type: "success"
               });
               this.saveLoad = false;
             })
@@ -955,12 +854,12 @@ export default {
     },
     // 整体提交
     handleSubmit() {
-      this.$refs["planForm"].validate((valid) => {
+      this.$refs["planForm"].validate(valid => {
         if (valid) {
           this.$confirm("确认提交", "提示", {
             confirmButtonext: "确定",
             cancelButtonText: "取消",
-            type: "warning",
+            type: "warning"
           })
             .then(() => {
               this.submitLoad = true;
@@ -973,15 +872,15 @@ export default {
                 this.infoData.opeType = this.$route.query.opeType;
               }
               insertSplerMcsList(this.infoData)
-                .then((response) => {
+                .then(response => {
                   this.$message({
                     message: "提交成功",
-                    type: "success",
+                    type: "success"
                   });
                   this.submitLoad = false;
                   this.$router.push({
                     name: "consumCataManagement-sup",
-                    query: { spdId: this.$route.query.spdId },
+                    query: { spdId: this.$route.query.spdId }
                   });
                 })
                 .catch(() => {
@@ -997,12 +896,12 @@ export default {
       if (this.$route.query.page == "2") {
         this.$router.push({
           name: "consumCataManagement-sup",
-          query: { spdId: this.$route.query.spdId },
+          query: { spdId: this.$route.query.spdId }
         });
       } else {
         this.$router.push({
           name: "distributionmanage",
-          query: { spdId: this.$route.query.spdId },
+          query: { spdId: this.$route.query.spdId }
         });
       }
     },
@@ -1016,7 +915,7 @@ export default {
         issuDate: "",
         endDate: "",
         fileId: "",
-        memo: "",
+        memo: ""
       }),
         (this.dialogFormVisible = true);
       this.dialogStatus = type;
@@ -1033,7 +932,7 @@ export default {
         endDate: "",
         fileId: "",
         memo: "",
-        prodEntp: "",
+        prodEntp: ""
       }),
         (this.dialogFormVisible = true);
       this.dialogStatus = type;
@@ -1052,24 +951,23 @@ export default {
     },
     // 确认
     handledialog() {
-      this.$refs["addForm"].validate((valid) => {
+      this.$refs["addForm"].validate(valid => {
         if (valid) {
           this.$confirm("确认提交", "提示", {
             confirmButtonText: "确定",
             cancelButtonText: "取消",
-            type: "warning",
+            type: "warning"
           })
             .then(() => {
               this.loading1 = true;
               if (this.dialogStatus == "one") {
                 this.addform.splerId = this.$store.state.user.orgId;
                 this.addform.hiCode = this.infoData.hiCode;
-                // this.addform.endDate = this.selectedDate;
                 insertMcsQua(this.addform)
-                  .then((response) => {
+                  .then(response => {
                     this.$message({
                       message: "提交成功",
-                      type: "success",
+                      type: "success"
                     });
                     this.loading1 = false;
                     this.dialogFormVisible = false;
@@ -1084,17 +982,17 @@ export default {
                     this.loading1 = false;
                     this.$message({
                       message: "提交失败",
-                      type: "error",
+                      type: "error"
                     });
                   });
               } else if (this.dialogStatus == "two") {
                 this.addform.splerId = this.$store.state.user.orgId;
                 this.addform.prodEntp = this.infoData.prodEntp;
                 insertFacQua(this.addform)
-                  .then((response) => {
+                  .then(response => {
                     this.$message({
                       message: "提交成功",
-                      type: "success",
+                      type: "success"
                     });
                     this.loading1 = false;
                     this.dialogFormVisible = false;
@@ -1111,7 +1009,7 @@ export default {
                     this.loading1 = false;
                     this.$message({
                       message: "提交失败",
-                      type: "error",
+                      type: "error"
                     });
                   });
               }
@@ -1119,8 +1017,8 @@ export default {
             .catch(() => {});
         }
       });
-    },
-  },
+    }
+  }
 };
 </script>
 

+ 28 - 27
src/views/page/consumCataManage-sup/catalogdetailsadd.vue

@@ -853,34 +853,34 @@ export default {
     },
     // 信息保存
     handleSave() {
-      // this.$refs["planForm"].validate((valid) => {
-      // if (valid) {
-      this.$confirm("确认保存", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      })
-        .then(() => {
-          this.saveLoad = true;
-          this.infoData.spdId = this.$route.query.spdId;
-          this.infoData.status = "A";
-          this.infoData.opeType = "新增";
-          insertSplerMcsList(this.infoData)
-            .then(response => {
-              this.$message({
-                message: "保存成功",
-                type: "success"
-              });
-              this.infoData.id = response.data.id;
-              this.saveLoad = false;
+      this.$refs["planForm"].validate(valid => {
+        if (valid) {
+          this.$confirm("确认保存", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          })
+            .then(() => {
+              this.saveLoad = true;
+              this.infoData.spdId = this.$route.query.spdId;
+              this.infoData.status = "A";
+              this.infoData.opeType = "新增";
+              insertSplerMcsList(this.infoData)
+                .then(response => {
+                  this.$message({
+                    message: "保存成功",
+                    type: "success"
+                  });
+                  this.infoData.id = response.data.id;
+                  this.saveLoad = false;
+                })
+                .catch(() => {
+                  this.saveLoad = false;
+                });
             })
-            .catch(() => {
-              this.saveLoad = false;
-            });
-        })
-        .catch(() => {});
-      // }
-      // });
+            .catch(() => {});
+        }
+      });
     },
 
     // 整体提交
@@ -895,6 +895,7 @@ export default {
             .then(() => {
               this.submitLoad = true;
               this.infoData.status = "B";
+              this.infoData.spdId = this.$route.query.spdId;
               this.infoData.opeType = "新增";
               insertSplerMcsList(this.infoData)
                 .then(response => {

+ 32 - 17
src/views/page/orderManage-sup/purOrderDelivery/printView.vue

@@ -32,7 +32,7 @@
       </div>
     </div>
     <div class="header-print">
-       <div class="item-print" v-if="form.delvOrdId">
+      <div class="item-print" v-if="form.delvOrdId">
         <div class="print-label">出库单号:</div>
         <div class="print-value">{{ form.delvOrdId }}</div>
       </div>
@@ -52,11 +52,11 @@
         <div class="print-label">采购总数:</div>
         <div class="print-value">{{ form.qtySum }}</div>
       </div>
-       <div class="item-print" v-if="form.delvOrdId">
+      <div class="item-print" v-if="form.delvOrdId">
         <div class="print-label">出库人:</div>
         <div class="print-value">{{ form.docmker }}</div>
       </div>
-       <div class="item-print" v-if="form.delvOrdId">
+      <div class="item-print" v-if="form.delvOrdId">
         <div class="print-label">出库时间:</div>
         <div class="print-value">{{ form.docmkDate }}</div>
       </div>
@@ -107,8 +107,22 @@
       <el-table-column label="生产日期" prop="manuDate" width="100" />
       <el-table-column label="有效期至" width="100" prop="prodExpy" />
       <el-table-column label="需求数量" prop="purcCnt" />
-      <el-table-column label="已出库数量" prop="delvCntYck" width="90px" v-if="!form.delvOrdId"/>
-      <el-table-column label="剩余出库量" prop="toDelvCnt" width="90px" />
+      <el-table-column
+        label="已出库数量"
+        prop="delvCntYck"
+        width="90px"
+        v-if="!form.delvOrdId"
+      />
+      <el-table-column label="剩余出库量" prop="toDelvCnt" width="90px">
+        <template #default="{ row }">
+          <span v-if="form.quit == 'outbound'">
+            {{ Number(row.toDelvCnt) - Number(row.delvCnt) }}
+          </span>
+          <span v-else>
+            {{ row.toDelvCnt }}
+          </span>
+        </template>
+      </el-table-column>
       <el-table-column label="本次出库数量" prop="delvCnt" width="120" />
     </el-table>
     <div class="autograph">
@@ -116,7 +130,7 @@
       <div class="grap">收货人(签名):</div>
     </div>
     <div class="remarks">备注 :</div>
-    <div style="page-break-after:always"></div>
+    <div style="page-break-after: always"></div>
   </div>
 </template>
 <script>
@@ -129,17 +143,17 @@ export default {
   components: {
     VueQr,
     vueBarcode,
-    mcsInfo,
+    mcsInfo
   },
   props: {
     orderData: {
       type: Array,
-      default: [],
+      default: []
     },
     form: {
       type: Object,
-      default: "",
-    },
+      default: ""
+    }
   },
   data() {
     return {
@@ -148,26 +162,27 @@ export default {
       text: "111111哈哈哈哈哈哈",
       logoSrc: "",
       randomColor: "black",
-      qrCodeUrl: "", // 存放生成的二维码url
+      qrCodeUrl: "" // 存放生成的二维码url
     };
   },
-  created() {
-  },
+  created() {},
   mounted() {
-   
+    let { form, data } = this.$route.query;
+    let listForm = JSON.parse(form);
+    console.log(listForm.quit, "哈哈哈");
     this.tableData = this.orderData;
   },
   methods: {
     //获取当前时间
     getTime() {
       return moment().format("YYYY-MM-DD HH:mm:ss");
-    },
+    }
   },
   watch: {
     orderData(newdata) {
       this.tableData = newdata;
-    },
-  },
+    }
+  }
 };
 </script>
 <style scoped lang="scss">

+ 1 - 2
src/views/page/orderManage-sup/purOrderDelivery/purchaseDetails.vue

@@ -584,7 +584,6 @@ export default {
           if (this.numAll(row) > item.toDelvCnt) {
             this.$message.warning("出库数量不能大于待出库数量");
             row.delvCnt = 0;
-            row.purcPric = 0;
             return;
           }
         }
@@ -609,7 +608,7 @@ export default {
       //     this.shanchu(row);
       // }
       this.shanchu3(row);
-      this.numOrPriceChange(index, row);
+      // this.numOrPriceChange(index, row);
     },
     // 确认
     handleConfirm() {

+ 25 - 72
src/views/page/qualityManagement-sup/manufacturer-filling/index.vue

@@ -2,13 +2,13 @@
   <!-- 供应商采购订单 已出库 -->
   <div class="common-box">
     <el-form :model="listQuery" ref="queryForm" :inline="true">
-      <el-form-item label="采购单号" prop="id">
-        <el-input v-model="listQuery.id" placeholder="请输入采购单号"></el-input>
+      <el-form-item label="生产企业" prop="prodEntp">
+        <el-input
+          v-model="listQuery.prodEntp"
+          placeholder="请输入生产企业"
+        ></el-input>
       </el-form-item>
-      <el-form-item label="医院名称" prop="branchName">
-        <el-input v-model="listQuery.branchName" placeholder="请输入医院名称"></el-input>
-      </el-form-item>
-      <el-form-item label="采购时间" prop="docmkDate">
+      <!-- <el-form-item label="采购时间" prop="docmkDate">
         <el-date-picker
           v-model="listQuery.docmkDate"
           type="daterange"
@@ -19,21 +19,7 @@
           end-placeholder="结束时间"
           style="width: 230px"
         />
-      </el-form-item>
-      <!-- <el-form-item label="当前状态" prop="stas">
-                <el-select
-                    v-model="listQuery.stas"
-                    placeholder="请选择"
-                    clearable
-                >
-                    <el-option
-                        v-for="item in stasOptions"
-                        :key="item.value"
-                        :label="item.lable"
-                        :value="item.value"
-                    ></el-option>
-                </el-select>
-            </el-form-item> -->
+      </el-form-item> -->
       <el-form-item>
         <el-button type="primary" @click="getData('search')">查询 </el-button>
         <el-button @click="reset">重置</el-button>
@@ -52,29 +38,12 @@
         <p>暂无数据</p>
       </template>
       <el-table-column fixed type="index" label="序号" width="60" />
-      <el-table-column label="订单编号" prop="id" />
-      <el-table-column label="订单种类" prop="detlCnt" />
-      <el-table-column label="订单总数量" prop="qtySum" />
-      <el-table-column label="剩余出库量" prop="delvCnt" />
-      <el-table-column label="订单总金额" prop="purcAmt" />
-      <el-table-column label="医院名称" prop="branchName" />
-      <el-table-column label="部门名称" prop="deptName" />
-      <el-table-column label="采购员" prop="docmker" />
-      <el-table-column label="采购时间" prop="docmkDate" width="140" />
-      <el-table-column label="状态" prop="stas">
-        <!-- <template #default="{ row }">
-              <span v-if="row.stas == 'A'">未受理</span>
-              <span v-if="row.stas == 'B'">未出库</span>
-              <span v-if="row.stas == 'R'">被驳回</span>
-              <span v-if="row.stas == 'C'">已出库</span>
-              <span v-if="row.stas == 'D'">部分出库</span>
-              <span v-if="row.stas == 'Y'">已入库</span>
-              <span v-if="row.stas == 'P'">部分入库</span>
-            </template> -->
-      </el-table-column>
+      <el-table-column label="生产企业" prop="prodEntp" />
       <el-table-column label="操作" width="100">
         <template slot-scope="scope">
-          <el-button type="text" @click="handleDetail(scope.row)">详情</el-button>
+          <el-button type="text" @click="handleDetail(scope.row)"
+            >详情</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
@@ -91,35 +60,28 @@
 
 <script>
 import ylPagination from "@/components/yl-pagination";
-import { getSplerDelvOrdPage } from "@/api/orderManage-sup/index";
+import { selectFacQua } from "@/api/qualityManagement-sup/information-filling";
 export default {
   components: {
-    ylPagination,
+    ylPagination
   },
   data() {
     return {
       listQuery: {
         current: 1,
         size: 10,
-        purcOrdId: "",
-        docmkDateStart: "",
-        docmkDateEnd: "",
-        docmkDate: [],
-        purcOrdStas: "",
+        prodEntp: ""
       },
       stasOptions: [
         { value: "C", lable: "已出库" },
         { value: "D", lable: "部分出库" },
         { value: "Y", lable: "已入库" },
-        { value: "P", lable: "部分入库" },
-      ],
-      dd1: [
-        { value: 0, name: "订单类型1" },
-        { value: 1, name: "订单类型2" },
+        { value: "P", lable: "部分入库" }
       ],
+      dd1: [{ value: 0, name: "订单类型1" }, { value: 1, name: "订单类型2" }],
       listLoading: false,
       list: [],
-      total: 0,
+      total: 0
     };
   },
   mounted() {
@@ -131,15 +93,13 @@ export default {
         this.listQuery.current = 1;
       }
       this.listLoading = true;
-      this.listQuery.docmkDateStart = this.listQuery.docmkDate[0];
-      this.listQuery.docmkDateEnd = this.listQuery.docmkDate[1];
-      getSplerDelvOrdPage(this.listQuery)
-        .then((res) => {
+      selectFacQua(this.listQuery)
+        .then(res => {
           this.list = res.data.records;
           this.total = res.data.total;
           this.listLoading = false;
         })
-        .catch((err) => {
+        .catch(err => {
           this.listLoading = false;
         });
     },
@@ -149,21 +109,14 @@ export default {
     },
     // 详情
     handleDetail(row) {
-      console.log(row);
       this.$router.push({
-        name: "alreadyDetail",
+        name: "manufacturerDetail",
         query: {
-          delvOrdId: row.delvOrdId,
-          purcOrdId: row.purcOrdId,
-          detlCnt: row.detlCnt,
-          orgName: row.orgName,
-          docmker: row.docmker,
-          docmkDate: row.docmkDate,
-          purcOrdStas: row.purcOrdStas,
-        },
+          prodEntp: row.prodEntp
+        }
       });
-    },
-  },
+    }
+  }
 };
 </script>
 

+ 273 - 0
src/views/page/qualityManagement-sup/manufacturer-filling/manufacturerDetail.vue

@@ -0,0 +1,273 @@
+<template>
+  <!-- 供应商采购订单 已出库 -->
+  <div class="common-box">
+    <div class="common-card">
+      <div>
+        <h3>生产厂商资质</h3>
+        <div class="right-type">
+          <el-button
+            style="margin-bottom: 10px"
+            type="primary"
+            @click="handleAdd()"
+            >添加资质</el-button
+          >
+           <el-button
+            style="margin-bottom: 10px"
+            type="primary"
+            @click="goBack()"
+            >返回</el-button
+          >
+        </div>
+      </div>
+      <el-table
+        v-loading="listLoading"
+        element-loading-text="加载中"
+        :data="tableData"
+        fit
+        stripe
+        border
+        :cell-class-name="tableColClassName"
+      >
+        <template slot="empty">
+          <img src="@/assets/nopage.png" alt />
+          <p>暂无数据</p>
+        </template>
+        <el-table-column fixed type="index" label="序号" width="60" />
+        <el-table-column label="资质证书信息" prop="quaName"> </el-table-column>
+        <el-table-column label="资质证书编号" prop="quaCode" />
+        <el-table-column label="发证日期" prop="issuDate" />
+        <el-table-column label="截止日期" prop="endDate" />
+        <el-table-column label="资质证件" prop="fileId">
+          <template slot-scope="scope">
+            <yl-upload
+              :fileId="scope.row.fileId"
+              readonly
+              v-if="scope.row.fileId"
+            >
+            </yl-upload>
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" prop="memo" />
+         <el-table-column label="操作" width="100" fixed="right">
+        <template slot-scope="scope">
+          <el-button type="text" @click="quitData(scope.row)"
+            >编辑</el-button
+          >
+        </template>
+      </el-table-column>
+      </el-table>
+       <el-dialog
+      class="addclass"
+      width="30%"
+      title="资质"
+      :visible.sync="dialogFormVisible"
+    >
+      <el-form label-width="120px" :model="addform" ref="addForm">
+        <el-form-item
+          label="资质证书信息"
+          prop="quaName"
+          :rules="rules.required"
+        >
+          <el-input
+            v-model="addform.quaName"
+            placeholder="请输入资质证书信息"
+            maxlength="50"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="资质证书编号" prop="quaCode" :rules="rules.required">
+          <el-input
+            v-model="addform.quaCode"
+            placeholder="请输入资质证书编号"
+            maxlength="50"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="发证时间" prop="issuDate" :rules="rules.dateRequired">
+          <el-date-picker
+            v-model.trim="addform.issuDate"
+            type="date"
+            :picker-options="TimeOption1"
+            placeholder="选择日期"
+            value-format="yyyy-MM-dd"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item label="截止时间" prop="endDate" :rules="rules.dateRequired">
+          <el-date-picker
+            v-model.trim="addform.endDate"
+            type="date"
+            :picker-options="TimeOption"
+            placeholder="选择日期"
+            value-format="yyyy-MM-dd"
+          ></el-date-picker>
+        </el-form-item>
+        </el-form-item>
+        <el-form-item label="资质证件" prop="fileId" :rules="rules.uploadRequired">
+          <yl-upload :fileId="addform.fileId" @getUpload="getUpload" urlName="acco">
+            <template v-slot:dec>只能上传pdf文件</template>
+          </yl-upload>
+          <!-- <yl-upload
+                v-else
+              :fileId="addform.fileId"
+              readonly
+            >
+            </yl-upload> -->
+        </el-form-item>
+        <el-form-item label="备注" prop="memo">
+          <el-input
+            v-model="addform.memo"
+            placeholder="请输入备注"
+            maxlength="50"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer">
+        <el-button @click="dialogFormVisible = false">取 消</el-button>
+        <el-button
+          type="primary"
+          v-preventReClick
+          v-loading="btnLoading"
+          @click="handledialog()"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
+    </div>
+  </div>
+</template>
+<script>
+import ylUpload from "@/components/yl-upload";
+import rules from "@/utils/rules";
+import { insertFacQua } from "@/api/consumCataManage-sup/index";
+import { selectFacQua } from "@/api/qualityManagement-sup/information-filling";
+export default {
+  components: {
+    ylUpload,
+  },
+  data() {
+    return {
+      tableData: [],
+      rules,
+      btnLoading: false,
+      addform: {
+        splerId: "",
+        hiCode: "",
+        quaName: "",
+        quaCode: "",
+        issuDate: "",
+        endDate: "",
+        fileId: "",
+        memo: "",
+      },
+      TimeOption: {
+        disabledDate(time) {
+          return time.getTime() < Date.now();
+        },
+      },
+      TimeOption1: {
+        disabledDate(time) {
+          return time.getTime() > Date.now();
+        },
+      },
+      dialogFormVisible: false,
+    };
+  },
+  mounted() {
+    let { query } = this.$route;
+    if (query.prodEntp) {
+      this.updateData();
+    }
+  },
+  methods: {
+    //返回主页面
+    goBack(){
+        this.$router.push({
+        name: "ManufacturerFilling",
+      });
+    },
+    //编辑资质
+    quitData(row) {
+      let newRow = { ...row };
+      this.addform = newRow;
+      this.dialogFormVisible = true;
+    },
+    handleAdd() {
+      this.dialogFormVisible = true;
+      setTimeout(() => {
+        this.$refs.addForm.clearValidate();
+        this.addform = {
+          splerId: "",
+          hiCode: "",
+          quaName: "",
+          quaCode: "",
+          issuDate: "",
+          endDate: "",
+          fileId: "",
+          memo: "",
+        };
+      }, 0);
+    },
+    getUpload(id) {
+      this.addform.fileId = id;
+      if (id) {
+        this.$refs.addForm.clearValidate("fileId");
+      } else {
+        this.$refs.addForm.validateField("fileId");
+      }
+    },
+    // 确认
+    handledialog() {
+      this.$refs["addForm"].validate((valid) => {
+        if (valid) {
+          this.$confirm("确认提交", "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          })
+            .then(() => {
+              this.btnLoading = true;
+              insertFacQua({
+                ...this.addform,
+                splerId: this.$store.state.user.orgId,
+                prodEntp: this.$route.query.prodEntp,
+              })
+                .then((response) => {
+                  this.$message({
+                    message: "提交成功",
+                    type: "success",
+                  });
+                  this.dialogFormVisible = false;
+                  this.btnLoading = false;
+                  this.$refs.addForm.resetFields();
+                  this.updateData();
+                })
+                .catch(() => {
+                  this.loading1 = false;
+                  this.$message({
+                    message: "提交失败",
+                    type: "error",
+                  });
+                });
+            })
+            .catch(() => {});
+        }
+      });
+    },
+    //更新资质数据
+    updateData() {
+      let proEpt = this.$route.query.prodEntp;
+      selectFacQua({ prodEntp: proEpt }).then((res) => {
+        if (res.success == true) {
+          if (
+            res.data.records[0].facQuaList &&
+            res.data.records[0].facQuaList.length > 0
+          ) {
+          }
+          this.tableData = res.data.records[0].facQuaList;
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>