Prechádzať zdrojové kódy

溯源码相关逻辑优化

yjwang 18 hodín pred
rodič
commit
ee551c61e6

+ 7 - 0
src/api/hisStore/storeOrder.js

@@ -345,3 +345,10 @@ export function updateCommentInfo(data) {
     data: data
   })
 }
+
+export function importCodeExpressTemplate() {
+  return request({
+    url: '/store/store/storeOrder/importCodeNoteExpressTemplate',
+    method: 'get'
+  })
+}

+ 5 - 0
src/store/modules/user.js

@@ -62,6 +62,11 @@ const user = {
       return new Promise((resolve, reject) => {
         getInfo().then(res => {
           const user = res.user
+          if(res.user.admin){
+            localStorage.setItem('loginType',"0");
+          }else {
+            localStorage.setItem('loginType',"1");
+          }
           const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
           if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
             commit('SET_ROLES', res.roles)

+ 10 - 6
src/views/hisStore/components/productAfterSalesOrder.vue

@@ -68,7 +68,16 @@
                   <el-tag  v-for="(item, index) in salesStatusOptions"    v-if="afterSales.salesStatus==item.dictValue" >{{item.dictLabel}}</el-tag>
                 </span>
             </el-descriptions-item>
-
+          <el-descriptions-item label="溯源码"  >
+               <span v-if="afterSales!=null">
+                  {{afterSales.verifyCode}}
+                </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="产品批号"  >
+               <span v-if="afterSales!=null">
+                  {{afterSales.batchNumber}}
+                </span>
+          </el-descriptions-item>
         </el-descriptions>
         <div style="margin: 20px 0px">
           <span class="font-small">收货信息</span>
@@ -134,11 +143,6 @@
               <p>{{JSON.parse(scope.row.jsonInfo).productName}}</p>
             </template>
           </el-table-column>
-          <el-table-column label="溯源码" width="300" align="center">
-            <template slot-scope="scope">
-              <p>{{JSON.parse(scope.row.jsonInfo).verifyCods}}</p>
-            </template>
-          </el-table-column>
           <el-table-column label="单价" width="240" align="center">
             <template slot-scope="scope">
               <p>¥{{JSON.parse(scope.row.jsonInfo).price.toFixed(2)}}</p>

+ 10 - 5
src/views/hisStore/components/productOrder.vue

@@ -193,6 +193,16 @@
                   {{order.merchantReply}}
                 </span>
             </el-descriptions-item>
+        <el-descriptions-item label="溯源码"  >
+               <span v-if="order!=null">
+                  {{order.verifyCode}}
+                </span>
+        </el-descriptions-item>
+        <el-descriptions-item label="产品批号"  >
+               <span v-if="order!=null">
+                  {{order.batchNumber}}
+                </span>
+        </el-descriptions-item>
       </el-descriptions>
       <div style="margin: 20px 0px"  v-if="order!=null && certificates != null">
         <span class="font-small">
@@ -238,11 +248,6 @@
             <p>{{JSON.parse(scope.row.jsonInfo).productName}}</p>
           </template>
         </el-table-column>
-        <el-table-column label="溯源码" width="300" align="center">
-          <template slot-scope="scope">
-            <p>{{JSON.parse(scope.row.jsonInfo).verifyCods}}</p>
-          </template>
-        </el-table-column>
         <el-table-column label="单价" width="240" align="center">
           <template slot-scope="scope">
             <p>¥{{JSON.parse(scope.row.jsonInfo).price.toFixed(2)}}</p>

+ 17 - 5
src/views/hisStore/storeAfterSales/index.vue

@@ -259,16 +259,24 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="溯源码" prop="verifyCodes">
+      <el-form-item label="溯源码" prop="verifyCode">
         <el-input
-          v-model="queryParams.verifyCodes"
+          v-model="queryParams.verifyCode"
+          clearable
+          placeholder="请输入溯源码"
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="产品批次号" prop="batchNumber">
+        <el-input
+          v-model="queryParams.batchNumber"
           clearable
           placeholder="请输入溯源码"
           size="small"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -296,7 +304,8 @@
       <el-table-column label="所属公司" align="center" prop="companyName" />
       <el-table-column label="所属员工" align="center" prop="companyUserNickName" />
       <el-table-column label="订单单号" align="center" prop="orderCode" />
-      <el-table-column label="溯源码" align="center" prop="verifyCodes" width="200px" />
+      <el-table-column label="溯源码" align="center" prop="verifyCode" width="200px" />
+      <el-table-column label="产品批次号" align="center" prop="batchNumber" width="200px" />
       <el-table-column align="center" label="处方编号" prop="serialNo"/>
       <el-table-column label="会员手机号" align="center" prop="userPhone" />
       <el-table-column label="退款金额" align="center" prop="refundAmount" />
@@ -437,6 +446,8 @@ export default {
         dosageForm:null,
         unitName:null,
         commonName:null,
+        verifyCode:null,
+        batchNumber:null
       },
       // 表单参数
       form: {},
@@ -537,7 +548,8 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm("queryForm");
-      this.queryParams.verifyCodes = null;
+      this.queryParams.verifyCode = null;
+      this.queryParams.batchNumber = null;
       this.handleQuery();
     },
     // 多选框选中数据

+ 87 - 4
src/views/hisStore/storeOrder/healthStoreList.vue

@@ -302,7 +302,16 @@
       </el-form-item>
       <el-form-item label="溯源码" prop="verifyCode">
         <el-input
-          v-model="queryParams.verifyCodes"
+          v-model="queryParams.verifyCode"
+          clearable
+          placeholder="请输入溯源码"
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="产品批次号" prop="batchNumber">
+        <el-input
+          v-model="queryParams.batchNumber"
           clearable
           placeholder="请输入溯源码"
           size="small"
@@ -391,6 +400,18 @@
         >删除
         </el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-folder-add"
+          size="mini"
+          v-hasPermi="['store:healthStoreOrder:exportItems:importCodeNoteExpress']"
+          v-if="loginType === '1'"
+          @click="openCode"
+        >+批量导入
+        </el-button>
+      </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
     <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
@@ -406,7 +427,8 @@
     <el-table v-loading="loading" :data="storeOrderList" border height="500" @selection-change="handleSelectionChange">
       <el-table-column align="center" type="selection" width="55"/>
       <el-table-column align="center" label="订单号" prop="orderCode" width="200px"/>
-      <el-table-column label="溯源码" align="center" prop="verifyCodes" width="200px" />
+      <el-table-column label="溯源码" align="center" prop="verifyCode" width="200px" />
+      <el-table-column label="产品批次号" align="center" prop="batchNumber" width="200px" />
       <el-table-column align="center" label="店铺名称" prop="storeName" width="150px">
         <template slot-scope="scope">
           <span>{{ scope.row.storeName }} </span>
@@ -748,6 +770,35 @@
         <el-button type="primary" @click="submitDeliveryNote">确 定</el-button>
       </span>
     </el-dialog>
+
+    <el-dialog
+      :before-close="handleClose"
+      :visible.sync="codeOpen"
+      center
+      title="批量导入编码"
+      width="35%"
+    >
+      <span slot="footer" class="dialog-footer">
+        <el-upload ref="upload" :action="codeUpload.url" :auto-upload="false" :disabled="codeUpload.isUploading"
+                   :headers="codeUpload.headers"
+                   :limit="1" :on-progress="handleFileUploadProgress"
+                   :on-success="handleFileSuccess" accept=".xlsx, .xls" drag
+        >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">
+          将文件拖到此处,或
+          <em>点击上传</em>
+        </div>
+        <div slot="tip" class="el-upload__tip">
+          <el-link style="font-size:12px" type="info" @click="importCodeTemplate">下载模板</el-link>
+        </div>
+        <div slot="tip" class="el-upload__tip" style="color:red">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
+      </el-upload>
+        <el-divider></el-divider>
+        <el-button @click="codeOpen = false">取 消</el-button>
+        <el-button type="primary" @click="submitDeliveryNote">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -762,6 +813,7 @@ import {
   delStoreOrder,
   addStoreOrder,
   updateStoreOrder,
+  importCodeExpressTemplate,
   exportHealthStoreOrder, exportHealthStoreOrderDetails, exportHealthStoreOrderItemsDetails
 } from '@/api/hisStore/storeOrder'
 import {getUserList} from '@/api/hisStore/user'
@@ -788,6 +840,7 @@ export default {
   },
   data() {
     return {
+      loginType:null,
       importMsgOpen: false,
       importMsg: '',
       deliveryPayStatusOptions: [],
@@ -894,7 +947,7 @@ export default {
         isDel: null,
         cost: null,
         verifyCode: null,
-        verifyCodes:null,
+        batchNumber:null,
         storeId: null,
         shippingType: null,
         isChannel: null,
@@ -957,13 +1010,31 @@ export default {
         // 上传的地址
         url: process.env.VUE_APP_BASE_API + '/store/store/storeOrder/importDeliveryNoteExpress',
       },
+      codeUpload: {
+        // 是否显示弹出层(用户导入)
+        open: false,
+        // 弹出层标题(用户导入)
+        title: '',
+        // 是否禁用上传
+        isUploading: false,
+        // 是否更新已经存在的用户数据
+        updateSupport: 0,
+        // 设置上传的请求头部
+        headers: {Authorization: 'Bearer ' + getToken()},
+        // 上传的地址
+        url: process.env.VUE_APP_BASE_API + '/store/store/storeOrder/importCodeNoteExpress',
+      },
       deliveryNoteOpen: false,
+      codeOpen: false,
       miniAppList: [],
       ruleForm: {
         miniAppId: null,
       },
     }
   },
+  mounted() {
+    this.loginType = localStorage.getItem('loginType');
+  },
   created() {
     getCompanyList().then(response => {
       this.companys = response.data
@@ -1157,7 +1228,8 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm('queryForm')
-      this.queryParams.verifyCodes = null;
+      this.queryParams.verifyCode = null;
+      this.queryParams.batchNumber = null;
       this.handleQuery()
     },
     // 多选框选中数据
@@ -1422,6 +1494,11 @@ export default {
       this.deliveryNoteOpen = true
       // this.getAppList();
     },
+    //打开溯源码导入单号
+    openCode() {
+      this.codeOpen = true
+      // this.getAppList();
+    },
     handleClose(done) {
       this.$confirm('确认关闭?')
         .then(_ => {
@@ -1436,6 +1513,12 @@ export default {
         this.download(response.msg)
       })
     },
+    //编码导入模板下载
+    importCodeTemplate() {
+      importCodeExpressTemplate().then((response) => {
+        this.download(response.msg)
+      })
+    },
     getAppList() {
       this.miniAppList = []
       const key = 'courseMa.config'

+ 18 - 6
src/views/hisStore/storeOrder/index.vue

@@ -304,9 +304,9 @@
         />
       </el-form-item>
 
-      <el-form-item label="溯源码" prop="verifyCodes">
+      <el-form-item label="溯源码" prop="verifyCode">
         <el-input
-          v-model="queryParams.verifyCodes"
+          v-model="queryParams.verifyCode"
           clearable
           placeholder="请输入溯源码"
           size="small"
@@ -314,6 +314,17 @@
         />
       </el-form-item>
 
+      <el-form-item label="产品批号" prop="batchNumber">
+        <el-input
+          v-model="queryParams.batchNumber"
+          clearable
+          placeholder="请输入产品批号"
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -410,7 +421,8 @@
     <el-table  height="500" border v-loading="loading" :data="storeOrderList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="订单号" align="center" prop="orderCode" width="200px" />
-      <el-table-column label="溯源码" align="center" prop="verifyCodes" width="200px" />
+      <el-table-column label="溯源码" align="center" prop="verifyCode" width="200px" />
+      <el-table-column label="产品批次号" align="center" prop="batchNumber" width="200px" />
       <el-table-column label="店铺名称" align="center" prop="storeName" width="150px" >
         <template slot-scope="scope">
           <span>{{scope.row.storeName}} </span>
@@ -905,7 +917,6 @@ export default {
         isDel: null,
         cost: null,
         verifyCode: null,
-        verifyCodes:null,
         storeId: null,
         shippingType: null,
         isChannel: null,
@@ -924,6 +935,7 @@ export default {
         dosageForm:null,
         unitName:null,
         commonName:null,
+        batchNumber:null,
 
       },
       // 表单参数
@@ -1150,7 +1162,6 @@ export default {
       else{
         this.queryParams.deliverySendTimeRange=null;
       }
-
       listStoreOrder(this.queryParams).then(response => {
         this.storeOrderList = response.rows;
         this.total = response.total;
@@ -1217,7 +1228,8 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm("queryForm");
-      this.queryParams.verifyCodes=null;
+      this.queryParams.verifyCode=null;
+      this.queryParams.batchNumber=null;
       this.handleQuery();
     },
     // 多选框选中数据

+ 7 - 7
src/views/hisStore/storeProduct/index.vue

@@ -419,13 +419,13 @@
             v-hasPermi="['his:storeProduct:copyProduct']"
           >一键复制
           </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-document-copy"
-            @click="openVerify(scope.row)"
-          >溯源码管理
-          </el-button>
+<!--          <el-button-->
+<!--            size="mini"-->
+<!--            type="text"-->
+<!--            icon="el-icon-document-copy"-->
+<!--            @click="openVerify(scope.row)"-->
+<!--          >溯源码管理-->
+<!--          </el-button>-->
         </template>
       </el-table-column>
     </el-table>