Przeglądaj źródła

Merge branch 'dev' of http://172.16.100.139/new-business/drp-web into dev

002390 10 miesięcy temu
rodzic
commit
fe893bbd7c

+ 7 - 0
src/api/business/as/assignAuthority.js

@@ -52,3 +52,10 @@ export function removeByIdList(data) {
   })
 }
 
+//根据项目id获取项目默认联系人
+export function getDefaultPerson(id) {
+  return request({
+    url: `/mk/as/assignAuthority/getDefaultPerson/${id}`,
+    method: 'get',
+  })
+}

+ 8 - 0
src/api/requisition/basic.js

@@ -209,3 +209,11 @@ export function deleteApplies(data) {
     data: data,
   })
 }
+
+export function checkDiCode(params) {
+  return request({
+    url: `/system/apply/material/checkDiCode`,
+    method: 'get',
+    params: params,
+  })
+}

+ 19 - 0
src/api/sharedLicense/company.js

@@ -0,0 +1,19 @@
+import request from '@/utils/request'
+import {zjCompanyInfo} from "@/api/qualityControl/qualityControl";
+
+// 查询共享企业列表
+export function list(param) {
+  return request({
+    url: '/mk/zj/zjShareCompany',
+    method: 'get',
+    params: param
+  })
+}
+
+// 查询共享企业详情
+export function getCompanyInfo(query) {
+  return request({
+    url: `/mk/zj/zjShareCompany/${query}`,
+    method: 'get',
+  })
+}

+ 26 - 0
src/api/sharedLicense/license.js

@@ -0,0 +1,26 @@
+import request from '@/utils/request'
+
+// 查询共享证照列表
+export function list(param) {
+  return request({
+    url: '/mk/zj/zjShareLicense',
+    method: 'get',
+    params: param
+  })
+}
+
+// 查询共享企业详情
+export function getLicenseInfo(query) {
+  return request({
+    url: `/mk/zj/zjShareLicense/${query}`,
+    method: 'get',
+  })
+}
+
+// 查询共享企业详情
+export function getLicenseList(query) {
+  return request({
+    url: `/mk/zj/zjShareLicense/ByShareCompanyId/${query}`,
+    method: 'get',
+  })
+}

+ 14 - 0
src/router/index.js

@@ -464,6 +464,20 @@ export const constantRoutes = [
     component: () => import('@/views/business/as/aspa-mobile/see/index'),
     hidden: true,
   },
+  //共享公司
+  {
+    path: '/sharedLicense/company/index',
+    name: "SharedLicenseCompanyIndex",
+    component: () => import('@/views/sharedLicense/company/index'),
+    hidden: true,
+  },
+  //共享证照
+  {
+    path: '/sharedLicense/license/index',
+    name: "SharedLicenseLicenseIndex",
+    component: () => import('@/views/sharedLicense/license/index'),
+    hidden: true,
+  },
 ]
 
 

+ 14 - 3
src/views/business/as/hospital/index.vue

@@ -133,7 +133,7 @@
 <script>
 import {add, edit, getWeChatRoomList, list, remove} from '@/api/business/as/hospital'
 import {getToken} from "@/utils/auth";
-import {userAllList, userList} from "@/api/business/as/assignAuthority";
+import {getDefaultPerson, userAllList, userList} from "@/api/business/as/assignAuthority";
 export default {
   mounted() {
     //挂载window.onresize事件(动态设置table高度)
@@ -172,13 +172,20 @@ export default {
         }
       })
     },
-    getDefaultPerson(){
+    getDefaultPersonList(){
       userAllList().then(res =>{
         if(res.code == 200){
           this.DefaultPersonList = res.data
         }
       })
     },
+    getDefaultPerson(param){
+      getDefaultPerson(param).then(res =>{
+        if(res.code == 200){
+          this.form.defaultUserName = res.data.userName
+        }
+      })
+    },
     bingBtn(param){
       edit(param).then(res =>{
         if(res.code == 200){
@@ -187,8 +194,12 @@ export default {
       })
     },
     editBtn(param){
+      console.log("param",param)
+      console.log("param.id",param.id)
+
+      this.getDefaultPerson(param.id)
       this.getWeChatRoomData()
-      this.getDefaultPerson()
+      this.getDefaultPersonList()
       this.dialogVisible=true
       this.title='编辑'
       this.form=param

+ 27 - 1
src/views/material/basicFile/details.vue

@@ -307,11 +307,12 @@
 
                             <el-input
                               size="mini"
-                              v-model="basicData.value[f.prop]"
+                              v-model.trim="basicData.value[f.prop]"
                               :type="f.attribute || 'text'"
                               :readonly="handleJudge(f)"
                               :rows="1"
                               :maxlength="judgeMaxLength(f.prop)"
+                              @change="changeValue(f)"
                             ></el-input>
                           </el-form-item>
                         </template>
@@ -979,6 +980,7 @@ import { getDicts as getDicts } from "@/api/system/dict/data";
 import arrayUtils from "../tools/arrayUtils";
 import { initRules, initParams } from "./init/index";
 import { getDetail } from "@/api/classify/basic";
+import { checkDiCode } from "@/api/requisition/basic";
 
 export default {
   name: "material-details",
@@ -1912,6 +1914,7 @@ export default {
     handleSave() {
       console.log("保存修改");
       this.loading = true;
+      this.checkDi(this.basicData.value["diCode"])
       // 普通保存修改
       this.updateButtonGroup &&
         this.handleSaveMaterial(() => {
@@ -2420,6 +2423,29 @@ export default {
         await this.getMedcineDetails(this.materialId, "material_medcine");
       });
     },
+    // DI码字段监听值改变
+    changeValue(attr) {
+      if (attr.prop == "diCode") {
+        this.checkDi(this.basicData.value["diCode"])
+      }
+    },
+    // 校验DI码
+    async checkDi(prop) {
+      try {
+        this.loading = true;
+        let param = {
+          diCode: prop,
+          isApply: 2
+        }
+        let { code, data } = await checkDiCode(param);
+        if (code === 200 && data.sysMaterialDiInfo.length != 0 ) {
+          this.$modal.notifyWarning(data.sysMaterialDiInfo[0].code + '物料已填写' + data.sysMaterialDiInfo[0].diCode + 'DI码');
+        }
+      } catch (error) {
+      } finally {
+        this.loading = false;
+      }
+    },
   },
 
   watch: {

+ 23 - 1
src/views/material/requisition/details/index.vue

@@ -8,6 +8,7 @@ import {
   betchSubmit,
   classifyDetails,
   getDiCode,
+  checkDiCode,
 } from "@/api/requisition/basic";
 import { REFER } from "@/components/popover-select/api/index";
 export default {
@@ -409,6 +410,7 @@ export default {
       try {
         this.loading = true;
         let params = await this.handleParams();
+        this.checkDi(params.sysMaterialApply.diCode);
         if (params) {
           let { code, msg } =
             this.addType === "add"
@@ -430,6 +432,7 @@ export default {
       try {
         this.loading = true;
         let params = await this.handleParams();
+        this.checkDi(params.sysMaterialApply.diCode);
         if (params) {
           let { code, msg } = await betchSubmit({
             ids: [Number(params.sysMaterialApply.id)],
@@ -450,6 +453,7 @@ export default {
       try {
         this.loading = true;
         let params = await this.handleParams();
+        this.checkDi(params.sysMaterialApply.diCode);
         if (params) {
           let { code, msg } = await saveAndToOa(params);
           code == 200 && this.hide();
@@ -528,6 +532,7 @@ export default {
     },
     async changeDiCode(prop) {
       console.log(prop, "prop");
+      this.checkDi(prop);
       try {
         this.loading = true;
         let { code, data } = await getDiCode(prop);
@@ -547,6 +552,23 @@ export default {
         this.loading = false;
       }
     },
+    // 校验DI码
+    async checkDi(prop) {
+      try {
+        this.loading = true;
+        let param = {
+          diCode: prop,
+          isApply: 0
+        }
+        let { code, data } = await checkDiCode(param);
+        if (code === 200 && data.sysApplyDiInfo.length != 0 ) {
+          this.$modal.notifyWarning(data.sysApplyDiInfo[0].billCode + '物料申请单已填写' + data.sysApplyDiInfo[0].diCode + 'DI码');
+        }
+      } catch (error) {
+      } finally {
+        this.loading = false;
+      }
+    }
   },
   created() {},
   mounted() {},
@@ -857,7 +879,7 @@ export default {
           <template slot="diCode" slot-scope="scope">
             <component
               v-bind="scope.attr"
-              v-model="scope.row[scope.item.key]"
+              v-model.trim="scope.row[scope.item.key]"
               :size="$attrs.size"
               :source.sync="scope.row"
               :disabled="addType === 'see'"

+ 182 - 0
src/views/sharedLicense/company/index.vue

@@ -0,0 +1,182 @@
+<template>
+  <div class="app-container">
+    <el-form ref="form" :model="queryParams" label-width="80px">
+      <el-row>
+        <el-col :span="6">
+          <el-form-item label="企业名称">
+            <el-input v-model="queryParams.companyName" clearable size="mini"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="企业来源">
+            <el-select v-model="queryParams.companySource" placeholder="请选择" clearable size="mini" style="width: 100%">
+              <el-option
+                v-for="item in companySourceOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="企业属性">
+            <el-select v-model="queryParams.companyAttribute" placeholder="请选择" clearable size="mini" style="width: 100%">
+            <el-option
+              v-for="item in companyAttributeOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+            <el-button size="mini" type="primary" @click="btnQuery">搜索</el-button>
+            <el-button size="mini" type="primary" @click="btnReset">重置</el-button>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
+      :data="tableData"
+      style="width: 100%">
+      <el-table-column
+        prop="companyName"
+        label="企业名称"
+        width="240">
+      </el-table-column>
+      <el-table-column
+        prop="companySource"
+        label="企业来源"
+        width="180">
+        <template #default="scope">
+          {{getChangeCompanySource(scope.row.companySource)}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="address"
+        label="企业属性"
+        width="180">
+        <template #default="scope">
+          {{getChangeCompanyAttribute(scope.row.companyAttribute)}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="操作"
+        width="180">
+        <template #default="scope">
+          <el-button size="mini" type="primary" @click="btnCheck">查看</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page=this.queryParams.pageNum
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size=this.queryParams.pageSize
+      layout="total, sizes, prev, pager, next, jumper"
+      :total=this.total>
+    </el-pagination>
+    <el-dialog></el-dialog>
+  </div>
+</template>
+
+<script>
+
+import {list} from "@/api/sharedLicense/company";
+import Pagination from "@/components/Pagination/index.vue";
+export default {
+  components:{
+    Pagination
+  },
+  data() {
+    return {
+      tableData:'',
+      total:0,
+      companyAttributeOptions: [
+        {
+          value: '0',
+          label: '组织'
+        },
+        {
+          value: '1',
+          label: '供应商'
+        },
+        {
+          value: '2',
+          label: '客户'
+        }
+      ],
+      companySourceOptions: [
+        {
+          value: '1',
+          label: 'NC'
+        },
+        {
+          value: '2',
+          label: 'WMS'
+        }
+      ],
+      queryParams:{
+        pageNum:1,
+        pageSize:10,
+        companyName:'',
+        companySource:'',
+        companyAttribute:''
+      }
+    };
+  },
+  created() {
+    this.getDataList()
+  },
+  methods: {
+    getChangeCompanySource(val){
+      for (var i = 0; i < this.companySourceOptions.length; i++) {
+        if (this.companySourceOptions[i].value === val) { //dictValue,dictLabel保持和上面定义一致
+          return this.companySourceOptions[i].label;
+        }
+      }
+    },
+    getChangeCompanyAttribute(val){
+      for (var i = 0; i < this.companyAttributeOptions.length; i++) {
+        if (this.companyAttributeOptions[i].value === val) { //dictValue,dictLabel保持和上面定义一致
+          return this.companyAttributeOptions[i].label;
+        }
+      }
+    },
+    btnQuery(){
+      this.getDataList(this.queryParams)
+    },
+    btnReset(){
+      this.queryParams={
+        pageNum:1,
+        pageSize:10,
+        companyName:'',
+        companySource:'',
+        companyAttribute:''
+      }
+      this.getDataList()
+    },
+    btnCheck(){
+
+    },
+    handleSizeChange(val) {
+      this.queryParams.pageSize = val
+      this.getDataList(this.queryParams)
+    },
+    handleCurrentChange(val) {
+      this.queryParams.pageNum = val
+      this.getDataList(this.queryParams)
+    },
+    getDataList(param){
+      list(param).then(res =>{
+        if(res.code == 200){
+          this.tableData = res.rows
+          this.total = res.total
+        }
+      })
+    }
+  },
+};
+</script>

+ 929 - 0
src/views/sharedLicense/license/gysDetail.vue

@@ -0,0 +1,929 @@
+<template>
+    <div class="app-container">
+        <el-form ref="form" :model="form" :rules="rules" class="baseinfoClass" >
+            <el-form-item style="margin-left: -3vw;">
+                <div class="text-with-line">基本信息</div>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="6">
+                    <span>企业属性:{{baseInfoData.companyAttributes}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span v-show="baseInfoData.companySource == '1'">供应商编码:{{baseInfoData.ncCode}}</span>
+                    <span v-show="baseInfoData.companySource == '2'">供应商编码:{{baseInfoData.wmsCustomerId}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>供应商名称:{{baseInfoData.companyName}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>纳税人登记号:{{baseInfoData.taxpayerid}}</span>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="6">
+                    <span>证照分类:{{baseInfoData.licenseType}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>企业类别:{{baseInfoData.companyType}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>营业执照号:{{baseInfoData.businessLicenseNumber}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>注册资金(万元):{{baseInfoData.registeredFund}}</span>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="6">
+                    <span>成立日期:{{baseInfoData.establishDate}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>法人:{{baseInfoData.legalbody}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>e-mail地址:{{baseInfoData.email}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>企业地址:{{baseInfoData.companyAddress}}</span>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="6">
+                    <span>供应商税类:{{baseInfoData.supplierTaxType}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>生产许可证号:{{baseInfoData.productionLicenseNumber}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>经营许可证号:{{baseInfoData.businessLicenseNumber2}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>付款协议:{{baseInfoData.payment}}</span>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="6">
+                    <span>合作有效期起:{{baseInfoData.cooperationWorkStartTime}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>合作有效期止:{{baseInfoData.cooperationWorkEndTime}}</span>
+                </el-col>
+            </el-form-item>
+            <el-form-item style="margin-left: -3vw;">
+                <div class="text-with-line">证照信息</div>
+            </el-form-item>
+            <el-form-item >
+                <el-col :span="2"  v-for="item in items1" :key="'index1-'+item.id">
+                    <el-tag
+                        :label="item.id"
+                        :value="item.licenseName"
+                        :type="item.serviceState == '0' ? 'danger' : 'info'"
+                        style="width: 7.5vw; text-align: center;  height: 4vh; line-height:4vh;"
+                        effect="plain">
+                        {{ item.licenseName }}
+                    </el-tag>
+                </el-col>
+            </el-form-item>
+            <el-form-item >
+                <el-col :span="2"  v-for="item in items2" :key="'index1-'+item.id">
+                    <el-tag
+                        :label="item.id"
+                        :value="item.licenseName"
+                        :type="item.serviceState == '0' ? 'danger' : 'info'"
+                        style="width: 7.5vw; text-align: center;  height: 4vh; line-height:4vh;"
+                        effect="plain">
+                        {{ item.licenseName }}
+                    </el-tag>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="5">
+                    <span>
+                        证照分类:
+                        <el-select v-model="form.licenseType" clearable placeholder="请选择" :disabled="isFlag">
+                            <el-option
+                                v-for="item in options"
+                                :key="'index3-'+item.value"
+                                :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </span>
+                </el-col>
+                <el-col :span="6">
+                    <span>证照编号:<el-input v-model="form.licenseNumber" placeholder="请输入证照编号" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+                <el-col :span="6">
+                    <span>证照名称:<el-input v-model="form.licenseName" placeholder="请输入证照名称" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+                <el-col :span="6">
+                    <span>颁证机构:<el-input v-model="form.licenseCompany" placeholder="请输入颁证机构" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="5">
+                    <span>颁发日期:<el-input v-model="form.licenseDate" placeholder="请输入颁发日期" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+                <el-col :span="6">
+                    <span>经营方式:<el-input v-model="form.businessType" placeholder="请输入经营方式" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+                <el-col :span="6">
+                    <span>
+                        有效期至:
+                        <el-date-picker
+                            :disabled="isFlag"
+                            v-model="form.validUntil"
+                            type="date"
+                            placeholder="选择日期">
+                        </el-date-picker>
+                    </span>
+                </el-col>
+                <el-col :span="6">
+                    <span>预警天数:<el-input v-model="form.warningDays" placeholder="请输入预警天数" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col>
+                    <span>备注:<el-input v-model="form.remark" placeholder="请输入备注" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+            </el-form-item>
+            <el-form-item class="container">
+                <el-button type="primary"  style="margin-right: 4vw;" @click="upload()" :disabled="isFlag">上传证照</el-button>
+            </el-form-item>
+            <el-form-item style="height: 205px; margin-left: -3vw; border: 5px solid #fff; padding: 5px; padding-top: 15px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);">
+                <el-col :span="3" v-for="imgs in imgList" :key="'index4-'+imgs.id" style="border-right: 1px solid #ebeef5;">
+                    <el-image
+                        :src="imgs.filepath"
+                        :preview-src-list="imgs.srcList"
+                        style="width: 165px; height: 165px; margin-left: 1.5vw;"
+                        >
+                    </el-image>
+                </el-col>
+            </el-form-item>
+            <el-form-item style="margin-left: -3vw;">
+                <div class="text-with-line">经营范围</div>
+            </el-form-item>
+                <el-form-item class="container">
+                    <el-button type="danger"  style="margin-right: 4vw;" @click="addTable" :disabled="isFlag">新增经营范围</el-button>
+                </el-form-item>
+                <el-table
+                    :data="tableData"
+                    highlight-current-row
+                    style="width: 100%; margin-left: -2vw; text-align: center;">
+                    <el-table-column
+                        type="index"
+                        width="50">
+                        </el-table-column>
+                    <el-table-column
+                    property="scopeLevel"
+                    label="范围层级"
+                    width="240">
+                        <template slot-scope="scope">
+                            <el-select
+                                clearable
+                                v-model="scope.row.scopeLevel"
+                                :disabled="isFlag"
+                            >
+                                <el-option
+                                v-for="level in scopeLevelList"
+                                :key="level.value"
+                                :label="level.label"
+                                :value="level.value"
+                                >
+                                </el-option>
+                            </el-select>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    property="code"
+                    label="编码"
+                    width="360">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.code" placeholder="请输入编码" :disabled="isFlag">
+                                <el-button slot="append" icon="el-icon-search" @click="tabTc(scope.row.scopeLevel,scope.$index)"></el-button>
+                            </el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    property="name"
+                    label="名称"
+                    width="360">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.name" placeholder="请输入名称" :disabled="isFlag"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    property="remark"
+                    label="备注"
+                    width="360">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.remark" placeholder="请输入备注" :disabled="isFlag"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    label="操作">
+                        <template slot-scope="scope">
+                            <el-button type="danger" icon="el-icon-delete" @click="deleteTable(scope.row)" :disabled="isFlag"></el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            <el-form-item>
+                <div class="button-container">
+                    <el-button type="danger" @click="returnPage" >取消</el-button>
+                    <el-button type="danger" @click="tj(2)" v-show="!isFlag">提交</el-button>
+                    <el-button type="danger" @click="bc(1)" v-show="!isFlag">保存</el-button>
+                </div>
+            </el-form-item>
+        </el-form>
+
+        <el-dialog
+            title="类别"
+            :visible.sync="tabA"
+            :before-close="handleClose">
+            <el-input
+                placeholder="输入关键字进行过滤"
+                size="mini"
+                v-model="filterTextA">
+            </el-input>
+            <el-tree
+                class="filter-tree"
+                :data="dataA"
+                :props="defaultPropsA"
+                node-key="id"
+                @node-click="clickTreeA"
+                highlight-current
+                :default-expanded-keys="defaultExpandedA"
+                :filter-node-method="filterNodeA"
+                ref="treeA">
+            </el-tree>
+            <span style="margin-right: 4px;">
+                <el-button @click="canclTabA" >取 消</el-button>
+                <el-button type="primary" @click="submitTabA" >确 定</el-button>
+            </span>
+        </el-dialog>
+
+        <el-dialog
+            title="剂型"
+            :visible.sync="tabB"
+            :before-close="handleClose">
+            <el-input
+                placeholder="输入关键字进行过滤"
+                size="mini"
+                v-model="filterTextB">
+            </el-input>
+            <el-tree
+                class="filter-tree"
+                :data="dataB"
+                :props="defaultPropsB"
+                node-key="id"
+                @node-click="clickTreeB"
+                highlight-current
+                :default-expanded-keys="defaultExpandedB"
+                :filter-node-method="filterNodeB"
+                ref="treeB">
+            </el-tree>
+            <span style="margin-right: 4px;">
+                <el-button @click="canclTabB" >取 消</el-button>
+                <el-button type="primary" @click="submitTabB" >确 定</el-button>
+            </span>
+        </el-dialog>
+
+        <el-dialog
+            title="物料"
+            :visible.sync="tabC"
+            :before-close="handleClose"
+            width="86%">
+            <el-row :gutter="20" >
+                <el-col :span="6" style="border-right: 1px solid #e9e9e9">
+                    <el-input
+                        placeholder="输入关键字进行过滤"
+                        size="mini"
+                        v-model="filterTextC">
+                    </el-input>
+                    <el-tree
+                        class="filter-tree"
+                        :data="dataC"
+                        :props="defaultPropsC"
+                        node-key="id"
+                        @node-click="clickTreeC"
+                        highlight-current
+                        :default-expanded-keys="defaultExpandedC"
+                        :filter-node-method="filterNodeC"
+                        ref="treeC">
+                    </el-tree>
+                </el-col>
+                <el-col :span="18">
+                    <Medicine :manageClass="dataFromParent" @send="handleEvent">
+                    </Medicine>
+                </el-col>
+        </el-row>
+
+        </el-dialog>
+
+        <el-dialog
+            title="文件上传"
+            :visible.sync="dialogVisible"
+            width="30%"
+            :before-close="handleClose">
+                <el-upload
+                    list-type="picture"
+                    class="upload-demo"
+                    action="#"
+                    :on-remove="handleRemove"
+                    :http-request="handleFileUpload"
+                    :file-list="fileList">
+                    <i class="el-icon-upload"></i>
+                    <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+                </el-upload>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="canclUpload">取 消</el-button>
+                <el-button type="primary" @click="submitUpload">确 定</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+  import Medicine from "@/views/qualityControl/medicine.vue";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  import axios from 'axios';
+  import { getToken } from '@/utils/auth';
+  import { zjCompanyInfo, byCompanyCode, zjLicenseInfo, byLicenseId, upload, addOrEdit, getLicenseType, getTreeA, getTreeB, getTreeC } from "@/api/qualityControl/qualityControl";
+  import {getCompanyInfo} from "@/api/sharedLicense/company";
+  import {getLicenseInfo,getLicenseList} from "@/api/sharedLicense/license";
+export default {
+    name: "qualityControlDetail",
+    components: {
+        Treeselect,
+        Medicine
+    },
+  props:{
+    detailLicenseId: {
+      type: [String]
+    },
+    detailCompanyId: {
+      type: [String]
+    },
+    isFlagNow: {
+      type: [String]
+    }
+  },
+    data() {
+      return {
+        dataFromParent: '',
+        filterTextA: "",
+        filterTextB: "",
+        filterTextC: "",
+        dataA: [],
+        dataB: [],
+        dataC: [],
+        defaultPropsA: {
+            children: "childrens",
+            label: "name",
+        },
+        defaultPropsB: {
+            children: "childrens",
+            label: "name",
+        },
+        defaultPropsC: {
+            children: "childrens",
+            label: "name",
+        },
+        defaultExpandedA: [],
+        defaultExpandedB: [],
+        defaultExpandedC: [],
+
+        key:'53cfd89363924f95b75b7221b6d0bfe3',
+        endpoint:'https://zhiguan.cognitiveservices.azure.cn/',
+        imgs: '',
+        isFlag: false,
+        form: {
+            xxx: '2'
+        },
+        rules: {},
+        baseInfoData: {
+            xxx: '1'
+        },
+        // 上传
+        dialogVisible: false,
+        // action
+        uploadUrl:
+                process.env.NODE_ENV == "development"
+                ? "/drp-file/document-center/fastdfs/upload"
+                : "/document-center/fastdfs/upload",
+        // token
+        headers: {
+            Authorization: 'Bearer ' + getToken()
+        },
+        // 主表ID
+        id: '',
+        items1: [],
+        items2: [],
+        options: [],
+        scopeLevelList: [
+        {
+          value: '1',
+          label: '类别'
+        },
+        {
+          value: '2',
+          label: '剂型'
+        },
+        {
+          value: '3',
+          label: '物料'
+        }
+        ],
+        value: '',
+        value1: '',
+        imgList: [],
+        tableData: [],
+        companyCode: '',
+        licenseNumber: '',
+        fileList: [],
+        tabA: false,
+        tabB: false,
+        tabC: false,
+        thisIndex: '',
+        key1: '',
+        node1:'',
+      };
+    },
+    watch: {
+        filterTextA(val) {
+            this.$refs.treeA.filter(val);
+        },
+        filterTextB(val) {
+            this.$refs.treeB.filter(val);
+        },
+        filterTextC(val) {
+            this.$refs.treeC.filter(val);
+        },
+    },
+    created() {
+        if(this.isFlagNow == 'true'){
+            this.isFlag = true;
+        }else{
+            this.isFlag = false;
+        }
+        getCompanyInfo(this.detailCompanyId).then(response => {
+          console.log("getCompanyInfo",this.detailCompanyId)
+          if(response.code == 200){
+            console.log("A1:::" + JSON.stringify(response.data))
+            this.baseInfoData = response.data;
+          }
+        });
+        getLicenseList(this.detailCompanyId).then(response => {
+          console.log("getLicenseList",this.detailCompanyId)
+            if(response.code == 200){
+                console.log("A2:::" + JSON.stringify(response.data))
+                if(response.data.length>10){
+                    this.items1 = response.data.slice(0,10)
+                    this.items2 = response.data.slice(10)
+                }else{
+                    this.items1 = response.data
+                }
+            }
+        });
+       getLicenseInfo(this.detailLicenseId).then(response => {
+            if(response.code == 200){
+                console.log("A3:::" + JSON.stringify(response.data))
+                this.form = response.data
+            }
+        });
+        byLicenseId(this.detailLicenseId).then(response => {
+            if(response.code == 200){
+                console.log("A4:::" + JSON.stringify(response.data))
+                this.tableData = response.data
+            }
+        });
+        getLicenseType().then(res=>{
+            if(res.code == '200'){
+                this.options = res.data
+            }
+        });
+    },
+    methods: {
+      returnPage(){
+        this.$emit('change', false);
+      },
+        handleEvent(arg1, arg2){
+            if(arg1!=''){
+                this.$set(this.tableData[this.thisIndex], 'code', arg1);
+                this.$set(this.tableData[this.thisIndex], 'name', arg2);
+            }
+            this.tabC = false;
+        },
+        canclTabA(){
+            this.node1 = '';
+            this.key1 = '';
+            this.tabA = false;
+        },
+        submitTabA(){
+            this.$set(this.tableData[this.thisIndex], 'code', this.key1);
+            this.$set(this.tableData[this.thisIndex], 'name', this.node1);
+            this.node1 = '';
+            this.key1 = '';
+            this.tabA = false;
+        },
+        canclTabB(){
+            this.node1 = '';
+            this.key1 = '';
+            this.tabB = false;
+        },
+        submitTabB(){
+            this.$set(this.tableData[this.thisIndex], 'code', this.key1);
+            this.$set(this.tableData[this.thisIndex], 'name', this.node1);
+            this.node1 = '';
+            this.key1 = '';
+            this.tabB = false;
+        },
+        canclTabC(){
+            this.tabC = false;
+        },
+        submitTabC(){
+            this.tabC = false;
+        },
+        // 获取树形结构
+        getTreeDataA() {
+              getTreeA({}).then((res) => {
+
+                  let { code, data } = res;
+                  console.log("A:::" + JSON.stringify(data))
+                  if (code === 200) {
+                      this.dataA = data;
+                  }
+              });
+          },
+          // 获取树形结构
+        getTreeDataB() {
+              getTreeB({}).then((res) => {
+                  let { code, data } = res;
+                  if (code === 200) {
+                      this.dataB = data;
+                  }
+              });
+          },
+          getTreeDataC() {
+              getTreeC({}).then((res) => {
+                  let { code, data } = res;
+                  if (code === 200) {
+                      this.dataC = data;
+                  }
+              });
+          },
+          clickTreeA(data, node) {
+            this.key1 = node.key;
+            this.node1 = node.label;
+            //   this.$set(this.tableData[this.thisIndex], 'code', node.key);
+            //   this.$set(this.tableData[this.thisIndex], 'name', node.label);
+          },
+          clickTreeB(data, node) {
+            this.key1 = node.key;
+            this.node1 = node.label;
+            //   this.$set(this.tableData[this.thisIndex], 'code', node.key);
+            //   this.$set(this.tableData[this.thisIndex], 'name', node.label);
+          },
+          clickTreeC(data, node) {
+
+              this.dataFromParent = data.id;
+          },
+          filterNodeA(value, data) {
+              if (!value) return true;
+              return (
+                  data.name.indexOf(value) !== -1 ||
+                  data.code.indexOf(value) !== -1
+              );
+          },
+          filterNodeB(value, data) {
+              if (!value) return true;
+              return (
+                  data.name.indexOf(value) !== -1 ||
+                  data.code.indexOf(value) !== -1
+              );
+          },
+          filterNodeC(value, data) {
+              if (!value) return true;
+              return (
+                  data.name.indexOf(value) !== -1 ||
+                  data.code.indexOf(value) !== -1
+              );
+          },
+        tabTc(val,index){
+            if(val == '1'){
+                this.thisIndex = index;
+                this.tabA = true;
+                this.getTreeDataA();
+            }
+            if(val == '2'){
+                this.thisIndex = index;
+                this.tabB = true;
+                this.getTreeDataB();
+            }
+            if(val == '3'){
+                this.thisIndex = index;
+                this.tabC = true;
+                this.dataFromParent = '';
+                this.getTreeDataC();
+            }
+        },
+         // 修改时自定义上传方法
+        handleFileUpload(params){
+            let newfile=params.file
+            let suffix = (newfile.name).substr((newfile.name).lastIndexOf("."));
+            newfile =new File([params.file], this.randomLong()+`${suffix}`)
+            newfile.uid=params.file.uid // new File 没有uid属性,会导致组件底层报错,这里手动加上
+            console.log(newfile)
+            // 使用FormData传参数和文件
+            var fileForm = new FormData();
+            // 文件
+            fileForm.append("file", newfile);
+            // 调用封装好的上传方法,传给后台FormData
+            upload(fileForm).then(res=>{
+                if(res && res.data.code == 200){
+                    this.fileList.push({
+                        'id': res.data.id,
+                        'name':res.data.filename,
+                        'url': process.env.NODE_ENV == "development"
+                        ? "https://sy.derom.com/01762feca72748b9b343c861753fe6f.png"
+                        : "https://sy.derom.com/document-center/minio/"+res.data.filepath
+                    })
+                    this.imgs = process.env.NODE_ENV == "development"
+                        ? "https://sy.derom.com/01762feca72748b9b343c861753fe6f.png"
+                        : "https://sy.derom.com/document-center/minio/"+res.data.filepath
+                    this.sends()
+                    this.$modal.msgSuccess("上传成功");
+                }
+            })
+        },
+        upload(){
+            this.fileList = [];
+            this.imgList.forEach(element => {
+                this.fileList.push({
+                    'id': element.id,
+                    'name':element.filename,
+                    'url': element.filepath
+                })
+            });
+            this.dialogVisible = true;
+        },
+        handleClose(done) {
+            this.$confirm('确认关闭?')
+            .then(_ => {
+                this.node1 = '';
+            this.key1 = '';
+                done();
+            })
+            .catch(_ => {});
+        },
+        canclUpload(){
+            this.dialogVisible = false;
+        },
+        submitUpload(){
+            this.imgList = [];
+            this.fileList.forEach(element => {
+                let arr = [];
+                arr.push(element.url);
+                this.imgList.push({
+                    'id': element.id,
+                    'filename': element.name,
+                    'filepath': element.url,
+                    'srcList': arr
+                })
+            });
+            this.dialogVisible = false;
+        },
+        handleRemove(file, fileList) {
+            this.fileList = [];
+            fileList.forEach(element => {
+                this.fileList.push({
+                    'id': element.id,
+                    'name':element.name,
+                    'url': element.url
+                })
+            });
+        },
+        addTable() {
+            const newRow = { id: this.randomLong(), scopeLevel: '', code: '', name: '', remark: '' };
+            this.tableData.push(newRow);
+        },
+        deleteTable(e) {
+          this.tableData = this.tableData.filter(row =>
+              row.id != e.id
+          );
+        },
+        randomLong() {
+            const min = Number.MIN_SAFE_INTEGER;
+            const max = Number.MAX_SAFE_INTEGER;
+            // 50% chance of a negative number
+            const isNegative = Math.random() < 0.5;
+            const randomValue = Math.random() * (max - min) + min;
+            return isNegative ? Math.round(randomValue) : Math.round(randomValue) * -1;
+        },
+        qx(){
+
+        },
+        tj(state){
+            this.form.workState = state;
+            this.$set(this.form, 'zjBusinessScopeList', this.tableData);
+            this.$set(this.form, 'organizationId', this.baseInfoData.organizationId);
+            this.$set(this.form, 'companyAttributes', this.baseInfoData.companyAttributes);
+            this.$set(this.form, 'companySourceCode', this.baseInfoData.companySourceCode);
+            if(this.imgList.length>0){
+                let pics = '';
+                this.imgList.forEach(element => {
+                    pics += element.id+',';
+                });
+                if(pics!=''){
+                    pics = pics.slice(0, -1);
+                    this.form.licensePicture = pics;
+                }
+            }
+            addOrEdit(this.form).then(res=>{
+                if(res.code == 200){
+                    this.$modal.msgSuccess("提交成功");
+                    this.returnPage()
+                }
+            })
+        },
+        bc(state){
+            this.form.workState = state;
+            this.$set(this.form, 'zjBusinessScopeList', this.tableData)
+            this.$set(this.form, 'organizationId', this.baseInfoData.organizationId);
+            this.$set(this.form, 'companyAttributes', this.baseInfoData.companyAttributes);
+            this.$set(this.form, 'companySourceCode', this.baseInfoData.companySourceCode);
+            if(this.imgList.length>0){
+                let pics = '';
+                this.imgList.forEach(element => {
+                    pics += element.id+',';
+                });
+                if(pics!=''){
+                    pics = pics.slice(0, -1);
+                    this.form.licensePicture = pics;
+                }
+            }
+            addOrEdit(this.form).then(res=>{
+                if(res.code == 200){
+                    this.$modal.msgSuccess("保存成功");
+                }
+            })
+        },
+        async sends(){
+            const response = await axios.post('https://zhiguan.cognitiveservices.azure.cn/vision/v3.2/read/analyze', {'url': this.imgs}, {
+                headers: {
+                    'Ocp-Apim-Subscription-Key': this.key,
+                    'Content-Type': 'application/json'
+                }
+            });
+            // console.log("A:::" +  JSON.stringify(response))
+            if(response.status == '202'){
+                let Operations = response.headers["operation-location"];
+                // console.log("B:::" + Operations)
+                setTimeout(()=>{
+                    this.sendGet(Operations);
+                },1000)
+            }else{
+                console.log("图片解析失败!")
+            }
+        },
+        async sendGet(url){
+            const res = await axios.get(url, {
+                headers: {
+                    'Ocp-Apim-Subscription-Key': this.key,
+                    'Content-Type': 'application/json'
+                }
+            });
+            // console.log("C:::" +  JSON.stringify(res))
+            if(res.data.status == 'succeeded'){
+                let ocrs  =  res.data.analyzeResult.readResults;
+                if(ocrs.length>0){
+                    let lines = ocrs[0].lines;
+                    lines.forEach((element,index) => {
+                        console.log("A:::" + element.text)
+                        if(element.text.includes('许可证编号')){
+                            if(element.text.includes(':')){
+                                this.form.licenseNumber = element.text.substr(6);
+                            }else{
+                                this.form.licenseNumber = element.text.substr(5);
+                            }
+                            this.form.licenseNumber = this.form.licenseNumber.split(' ').join('')
+                        }
+                        if(element.text.includes('许可证') && !element.text.includes('编号')){
+                            this.form.licenseName = element.text;
+                            this.form.licenseName = this.form.licenseName.split(' ').join('')
+                        }
+                        if(element.text.includes('发证机关')||element.text.includes('发证部门')||element.text.includes('颁证机构')){
+                            if(element.text.includes(':')){
+                                this.form.licenseCompany = element.text.substr(5);
+                            }else{
+                                this.form.licenseCompany = element.text.substr(4);
+                            }
+                            if(!lines[index+1].text.includes(":")){
+                                this.form.licenseCompany += lines[index+1].text;
+                            }
+                            this.form.licenseCompany = this.form.licenseCompany.split(' ').join('').split(',').join('')
+                        }
+                        if(element.text.includes('生产方式') || element.text.includes('经营方式')){
+                            if(element.text.includes(':')){
+                                this.form.businessType = element.text.substr(5);
+                            }else{
+                                this.form.businessType = element.text.substr(4);
+                            }
+                            if(!lines[index+1].text.includes(":")){
+                                this.form.businessType += lines[index+1].text;
+                            }
+                            this.form.businessType = this.form.businessType.split(' ').join('')
+                        }
+                        if(element.text.includes('有效期限') && !element.text.includes('至')){
+                            let wb = '';
+                            if(element.text.includes(':')){
+                                wb = element.text.substr(5);
+                                if(wb != ''){
+                                    wb = wb.replace('年','-');
+                                    wb = wb.replace('月','-');
+                                    wb = wb.replace('日','');
+                                    wb = wb.split(' ').join('')
+                                    this.form.validUntil = wb;
+                                }
+                            }else{
+                                wb = element.text.substr(4);
+                                if(wb != ''){
+                                    wb = wb.replace('年','-');
+                                    wb = wb.replace('月','-');
+                                    wb = wb.replace('日','');
+                                    wb = wb.split(' ').join('')
+                                    this.form.validUntil = wb;
+                                }
+                            }
+                        }
+                        if(element.text.includes('至')){
+                            let wb = '';
+                            wb = element.text.substr(1);
+                            if(wb != ''){
+                                wb = wb.replace('年','-');
+                                wb = wb.replace('月','-');
+                                wb = wb.replace('日','');
+                                wb = wb.split(' ').join('')
+                                this.form.validUntil = wb;
+                            }
+                        }
+                        if(element.text.includes('发证日期')){
+                            let wb = '';
+                            if(element.text.includes(':')){
+                                wb = element.text.substr(5);
+                                if(wb != ''){
+                                    wb = wb.replace('年','-');
+                                    wb = wb.replace('月','-');
+                                    wb = wb.replace('日','');
+                                    wb = wb.split(' ').join('')
+                                    this.form.licenseDate = wb;
+                                }
+                            }else{
+                                wb = element.text.substr(4);
+                                if(wb != ''){
+                                    wb = wb.replace('年','-');
+                                    wb = wb.replace('月','-');
+                                    wb = wb.replace('日','');
+                                    wb = wb.split(' ').join('')
+                                    this.form.licenseDate = wb;
+                                }
+                            }
+                        }
+                    });
+                }
+            }
+        },
+    },
+  };
+</script>
+<style>
+.baseinfoClass {
+    margin-left: 4vw;
+}
+.text-with-line {
+    position: relative;
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 5px; /* 确保条线在文字下方 */
+}
+.text-with-line::after {
+    content: '';
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    width: 100%; /* 条线的宽度 */
+    height: 2px; /* 条线的高度 */
+    background: #000; /* 条线的颜色 */
+}
+.container {
+    display: flex;
+    justify-content: flex-end; /* 这会把子元素放在容器的右边 */
+}
+.button-container {
+  position: fixed;  /* 使用fixed定位,使得容器始终相对于浏览器窗口 */
+  top: 10px;        /* 距离顶部10像素 */
+  right: 60px;      /* 距离右侧10像素 */
+  z-index: 1000;    /* 设置一个较高的z-index确保按钮在其他内容之上 */
+}
+</style>

+ 290 - 0
src/views/sharedLicense/license/index.vue

@@ -0,0 +1,290 @@
+<template>
+  <div class="app-container">
+    <el-form ref="form" :model="queryParams" label-width="80px">
+      <el-row>
+        <el-col :span="3">
+          <el-form-item label="证照来源">
+            <el-select v-model="queryParams.licenseSource" placeholder="请选择" clearable size="mini" style="width: 100%">
+              <el-option
+                v-for="item in licenseSourceOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="3">
+          <el-form-item label="企业属性">
+            <el-select v-model="queryParams.companyAttributes" placeholder="请选择" clearable size="mini" style="width: 100%">
+              <el-option
+                v-for="item in companyAttributeOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="3">
+          <el-form-item label="企业名称">
+            <el-input v-model="queryParams.companyName" clearable size="mini"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="3">
+          <el-form-item label="证照类型">
+            <el-select v-model="queryParams.licenseType" placeholder="请选择" clearable size="mini" style="width: 100%">
+<!--              <el-option-->
+<!--                v-for="item in companySourceOptions"-->
+<!--                :key="item.value"-->
+<!--                :label="item.label"-->
+<!--                :value="item.value">-->
+<!--              </el-option>-->
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="3">
+          <el-form-item label="证照名称">
+            <el-input v-model="queryParams.licenseName" clearable size="mini"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="3">
+          <el-button size="mini" type="primary" @click="btnQuery">搜索</el-button>
+          <el-button size="mini" type="primary" @click="btnReset">重置</el-button>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
+      :data="tableData"
+      style="width: 100%">
+      <el-table-column
+        prop="licenseSource"
+        label="证照来源"
+        width="80">
+        <template #default="scope">
+          {{getChangeLicenseSource(scope.row.licenseSource)}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="companyAttributes"
+        label="企业属性"
+        width="180">
+        <template #default="scope">
+          {{getChangeCompanyAttribute(scope.row.companyAttributes)}}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="companyName"
+        label="企业名称"
+        width="240">
+      </el-table-column>
+      <el-table-column
+        prop="licenseType"
+        label="证照类型"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="licenseCode"
+        label="证照编号"
+        width="240">
+      </el-table-column>
+      <el-table-column
+        prop="licenseName"
+        label="证照名称"
+        width="240">
+      </el-table-column>
+      <el-table-column
+        prop="licenseDate"
+        label="颁证日期"
+        width="240">
+      </el-table-column>
+      <el-table-column
+        prop="warningDays"
+        label="预警天数"
+        width="100">
+      </el-table-column>
+      <el-table-column
+        prop="validUntil"
+        label="有效期至"
+        width="100">
+      </el-table-column>
+      <el-table-column
+        label="操作"
+        width="130">
+        <template #default="scope">
+<!--          <el-button size="mini" type="primary" @click="btnEdit(scope.row)">修改</el-button>-->
+          <el-button size="mini" type="primary" @click="btnCheck(scope.row)">查看</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page=this.queryParams.pageNum
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size=this.queryParams.pageSize
+      layout="total, sizes, prev, pager, next, jumper"
+      :total=this.total>
+    </el-pagination>
+
+    <el-dialog
+      :title="title"
+      :visible.sync="dialogGysEditFlag"
+      v-if="dialogGysEditFlag"
+      fullscreen
+      :before-close="handleClose"
+      :modal="false">
+      <gys-detail :detailLicenseId="this.detailLicenseId" :detailCompanyId="this.detailCompanyId" :isFlagNow="this.isFlagNow" @change="costPlannedAmountChange($event)"/>
+    </el-dialog>
+    <el-dialog
+      :title="title"
+      :visible.sync="dialogKhEditFlag"
+      v-if="dialogKhEditFlag"
+      fullscreen
+      :before-close="handleClose"
+      :modal="false">
+      <khDetail :detailLicenseId="this.detailLicenseId" :detailCompanyId="this.detailCompanyId" :isFlagNow="this.isFlagNow" @change="costPlannedAmountChange($event)"/>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+
+import {list} from "@/api/sharedLicense/license";
+import gysDetail from "@/views/sharedLicense/license/gysDetail.vue";
+import khDetail from "@/views/sharedLicense/license/khDetail.vue";
+export default {
+  components:{
+    gysDetail,
+    khDetail,
+  },
+  data() {
+    return {
+      title:'',
+      detailCompanyId:'',
+      detailLicenseId:'',
+      isFlagNow:'',
+      dialogGysEditFlag: false,
+      dialogKhEditFlag: false,
+      tableData:'',
+      total:0,
+      companyAttributeOptions: [
+        {
+          value: '0',
+          label: '组织'
+        },
+        {
+          value: '1',
+          label: '供应商'
+        },
+        {
+          value: '2',
+          label: '客户'
+        }
+      ],
+      licenseSourceOptions: [
+        {
+          value: '1',
+          label: 'NC'
+        },
+        {
+          value: '2',
+          label: 'WMS'
+        }
+      ],
+      queryParams:{
+        pageNum:1,
+        pageSize:10,
+        companyName:'',
+        licenseType:'',
+        licenseName:'',
+        licenseSource:'',
+        companyAttributes:'',
+      }
+    };
+  },
+  created() {
+    this.getDataList()
+  },
+  methods: {
+    async costPlannedAmountChange(value){
+      this.dialogGysEditFlag=value
+      this.dialogKhEditFlag=value
+    },
+    getChangeLicenseSource(val){
+      for (var i = 0; i < this.licenseSourceOptions.length; i++) {
+        if (this.licenseSourceOptions[i].value === val) { //dictValue,dictLabel保持和上面定义一致
+          return this.licenseSourceOptions[i].label;
+        }
+      }
+    },
+    getChangeCompanyAttribute(val){
+      for (var i = 0; i < this.companyAttributeOptions.length; i++) {
+        if (this.companyAttributeOptions[i].value === val) { //dictValue,dictLabel保持和上面定义一致
+          return this.companyAttributeOptions[i].label;
+        }
+      }
+    },
+    btnQuery(){
+      this.getDataList(this.queryParams)
+    },
+    btnReset(){
+      this.queryParams={
+        pageNum:1,
+        pageSize:10,
+        companyName:'',
+        licenseType:'',
+        licenseName:''
+      }
+      this.getDataList()
+    },
+    btnCheck(val){
+      console.log("val",val)
+      this.title = '查看'
+      if(val.companyAttributes == '1'){
+        this.dialogGysEditFlag = true
+        this.isFlagNow = 'true'
+        this.detailLicenseId = val.licenseId
+        this.detailCompanyId = val.companyId
+      }
+      if(val.companyAttributes == '2'){
+        this.dialogKhEditFlag = true
+        this.isFlagNow = 'true'
+        this.detailLicenseId = val.licenseId
+        this.detailCompanyId = val.companyId
+      }
+    },
+    btnEdit(val){
+      if(val.companyAttributes == '1'){
+        this.title = '修改'
+        this.dialogGysEditFlag = true
+        this.detailLicenseId = val.licenseId
+        this.detailCompanyId = val.companyId
+      }
+    },
+    handleClose(done) {
+      this.$confirm('确认关闭?')
+        .then(_ => {
+          done();
+        })
+        .catch(_ => {});
+    },
+    handleSizeChange(val) {
+      this.queryParams.pageSize = val
+      this.getDataList(this.queryParams)
+    },
+    handleCurrentChange(val) {
+      this.queryParams.pageNum = val
+      this.getDataList(this.queryParams)
+    },
+    getDataList(param){
+      list(param).then(res =>{
+        if(res.code == 200){
+          this.tableData = res.rows
+          this.total = res.total
+        }
+      })
+    }
+  },
+};
+</script>

+ 626 - 0
src/views/sharedLicense/license/khDetail.vue

@@ -0,0 +1,626 @@
+<template>
+    <div class="app-container">
+        <el-form ref="form" :model="form" :rules="rules" class="baseinfoClass" >
+            <el-form-item style="margin-left: -3vw;">
+                <div class="text-with-line">基本信息</div>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="6">
+                    <span>企业属性:{{baseInfoData.companyAttributes}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span v-show="baseInfoData.companySource === '1'">客户编码:{{baseInfoData.ncCode}}</span>
+                    <span v-show="baseInfoData.companySource === '2'">客户编码:{{baseInfoData.wmsCustomerId}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>客户名称:{{baseInfoData.companyName}}</span>
+                </el-col>
+                <el-col :span="6">
+                    <span>纳税人登记号:{{baseInfoData.taxpayerid}}</span>
+                </el-col>
+            </el-form-item>
+            <el-form-item style="margin-left: -3vw;">
+                <div class="text-with-line">证照信息</div>
+            </el-form-item>
+            <el-form-item >
+                <el-col :span="2"  v-for="item in items1" :key="'index1-'+item.id">
+                    <el-tag
+                        :label="item.id"
+                        :value="item.licenseName"
+                        :type="item.serviceState == '0' ? 'danger' : 'info'"
+                        style="width: 7.5vw; text-align: center;  height: 4vh; line-height:4vh;"
+                        effect="plain">
+                        {{ item.licenseName }}
+                    </el-tag>
+                </el-col>
+            </el-form-item>
+            <el-form-item >
+                <el-col :span="2"  v-for="item in items2" :key="'index1-'+item.id">
+                    <el-tag
+                        :label="item.id"
+                        :value="item.licenseName"
+                        :type="item.serviceState == '0' ? 'danger' : 'info'"
+                        style="width: 7.5vw; text-align: center;  height: 4vh; line-height:4vh;"
+                        effect="plain">
+                        {{ item.licenseName }}
+                    </el-tag>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="5">
+                    <span>
+                        证照分类:
+                        <el-select v-model="form.licenseType" clearable placeholder="请选择" :disabled="isFlag">
+                            <el-option
+                                v-for="item in options"
+                                :key="'index3-'+item.value"
+                                :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </span>
+                </el-col>
+                <el-col :span="6">
+                    <span>证照编号:<el-input v-model="form.licenseNumber" placeholder="请输入证照编号" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+                <el-col :span="6">
+                    <span>证照名称:<el-input v-model="form.licenseName" placeholder="请输入证照名称" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+                <el-col :span="6">
+                    <span>颁证机构:<el-input v-model="form.licenseCompany" placeholder="请输入颁证机构" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col :span="5">
+                    <span>颁发日期:<el-input v-model="form.licenseDate" placeholder="请输入颁发日期" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+                <el-col :span="6">
+                    <span>经营方式:<el-input v-model="form.businessType" placeholder="请输入经营方式" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+                <el-col :span="6">
+                    <span>
+                        有效期至:
+                        <el-date-picker
+                            :disabled="isFlag"
+                            v-model="form.validUntil"
+                            type="date"
+                            placeholder="选择日期">
+                        </el-date-picker>
+                    </span>
+                </el-col>
+                <el-col :span="6">
+                    <span>预警天数:<el-input v-model="form.warningDays" placeholder="请输入预警天数" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+            </el-form-item>
+            <el-form-item>
+                <el-col>
+                    <span>备注:<el-input v-model="form.remark" placeholder="请输入备注" style="width: 60%" :disabled="isFlag"/></span>
+                </el-col>
+            </el-form-item>
+            <el-form-item class="container">
+                <el-button type="primary"  style="margin-right: 4vw;" @click="upload()" :disabled="isFlag">上传证照</el-button>
+            </el-form-item>
+            <el-form-item style="height: 205px; margin-left: -3vw; border: 5px solid #fff; padding: 5px; padding-top: 15px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);">
+                <el-col :span="3" v-for="imgs in imgList" :key="'index4-'+imgs.id" style="border-right: 1px solid #ebeef5;">
+                    <el-image
+                        :src="imgs.filepath"
+                        :preview-src-list="imgs.srcList"
+                        style="width: 165px; height: 165px; margin-left: 1.5vw;"
+                        >
+                    </el-image>
+                </el-col>
+            </el-form-item>
+            <el-form-item style="margin-left: -3vw;">
+                <div class="text-with-line">经营范围</div>
+            </el-form-item>
+                <el-form-item class="container">
+                    <el-button type="danger"  style="margin-right: 4vw;" @click="addTable" :disabled="isFlag">新增经营范围</el-button>
+                </el-form-item>
+                <el-table
+                    :data="tableData"
+                    highlight-current-row
+                    style="width: 100%; margin-left: -2vw; text-align: center;">
+                    <el-table-column
+                        type="index"
+                        width="50">
+                        </el-table-column>
+                    <el-table-column
+                    property="scopeLevel"
+                    label="范围层级"
+                    width="240">
+                        <template slot-scope="scope">
+                            <el-select
+                                clearable
+                                v-model="scope.row.scopeLevel"
+                                :disabled="isFlag"
+                            >
+                                <el-option
+                                v-for="level in scopeLevelList"
+                                :key="level.value"
+                                :label="level.label"
+                                :value="level.value"
+                                >
+                                </el-option>
+                            </el-select>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    property="code"
+                    label="编码"
+                    width="360">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.code" placeholder="请输入编码" :disabled="isFlag"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    property="name"
+                    label="名称"
+                    width="360">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.name" placeholder="请输入名称" :disabled="isFlag"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    property="remark"
+                    label="备注"
+                    width="360">
+                        <template slot-scope="scope">
+                            <el-input v-model="scope.row.remark" placeholder="请输入备注" :disabled="isFlag"></el-input>
+                        </template>
+                    </el-table-column>
+                    <el-table-column
+                    label="操作">
+                        <template slot-scope="scope">
+                            <el-button type="danger" icon="el-icon-delete" @click="deleteTable(scope.row)" :disabled="isFlag"></el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            <el-form-item>
+                <div class="button-container">
+                    <el-button type="danger" @click="returnPage" >取消</el-button>
+                    <el-button type="danger" @click="tj(2)" v-show="!isFlag">提交</el-button>
+                    <el-button type="danger" @click="bc(1)" v-show="!isFlag">保存</el-button>
+                </div>
+            </el-form-item>
+        </el-form>
+
+        <el-dialog
+            title="文件上传"
+            :visible.sync="dialogVisible"
+            width="30%"
+            :before-close="handleClose">
+                <el-upload
+                    list-type="picture"
+                    class="upload-demo"
+                    action="#"
+                    :on-remove="handleRemove"
+                    :http-request="handleFileUpload"
+                    :file-list="fileList">
+                    <i class="el-icon-upload"></i>
+                    <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+                </el-upload>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="canclUpload">取 消</el-button>
+                <el-button type="primary" @click="submitUpload">确 定</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+  import axios from 'axios';
+  import { getToken } from '@/utils/auth';
+  import { zjCompanyInfo, byCompanyCode, zjLicenseInfo, byLicenseId, upload, addOrEdit, getLicenseType } from "@/api/qualityControl/qualityControl";
+  import {getCompanyInfo} from "@/api/sharedLicense/company";
+  import {getLicenseInfo, getLicenseList} from "@/api/sharedLicense/license";
+export default {
+    name: "qualityControlDetail",
+    props: {
+      detailLicenseId: {
+        type: [String]
+      },
+      detailCompanyId: {
+        type: [String]
+      },
+      isFlagNow: {
+        type: [String]
+      }
+    },
+    data() {
+      return {
+        key:'53cfd89363924f95b75b7221b6d0bfe3',
+        endpoint:'https://zhiguan.cognitiveservices.azure.cn/',
+        imgs: '',
+        isFlag: false,
+        form: {
+            xxx: '2'
+        },
+        rules: {},
+        baseInfoData: {
+            xxx: '1'
+        },
+        // 上传
+        dialogVisible: false,
+        // action
+        uploadUrl:
+                process.env.NODE_ENV == "development"
+                ? "/drp-file/document-center/fastdfs/upload"
+                : "/document-center/fastdfs/upload",
+        // token
+        headers: {
+            Authorization: 'Bearer ' + getToken()
+        },
+        // 主表ID
+        id: '',
+        items1: [],
+        items2: [],
+        options: [],
+        scopeLevelList: [
+        {
+          value: '1',
+          label: '类别'
+        },
+        {
+          value: '2',
+          label: '剂型'
+        },
+        {
+          value: '3',
+          label: '物料'
+        }
+        ],
+        value: '',
+        value1: '',
+        imgList: [],
+        tableData: [],
+        companyCode: '',
+        licenseNumber: '',
+        fileList: [],
+      };
+    },
+    watch: {
+
+    },
+    created() {
+      console.log("this.isFlagNow",this.isFlagNow)
+      if(this.isFlagNow == 'true'){
+          this.isFlag = true;
+      }else{
+          this.isFlag = false;
+      }
+      getCompanyInfo(this.detailCompanyId).then(response => {
+        console.log("getCompanyInfo",this.detailCompanyId)
+        if(response.code == 200){
+          console.log("A1:::" + JSON.stringify(response.data))
+          this.baseInfoData = response.data;
+        }
+      });
+      getLicenseList(this.detailCompanyId).then(response => {
+        console.log("getLicenseList",this.detailCompanyId)
+        if(response.code == 200){
+          console.log("A2:::" + JSON.stringify(response.data))
+          if(response.data.length>10){
+            this.items1 = response.data.slice(0,10)
+            this.items2 = response.data.slice(10)
+          }else{
+            this.items1 = response.data
+          }
+        }
+      });
+      getLicenseInfo(this.detailLicenseId).then(response => {
+        if(response.code == 200){
+          console.log("A3:::" + JSON.stringify(response.data))
+          this.form = response.data
+        }
+      });
+      byLicenseId(this.detailLicenseId).then(response => {
+        if(response.code == 200){
+          console.log("A4:::" + JSON.stringify(response.data))
+          this.tableData = response.data
+        }
+      });
+      getLicenseType().then(res=>{
+        if(res.code == '200'){
+          this.options = res.data
+        }
+      });
+    },
+    methods: {
+
+         // 修改时自定义上传方法
+        handleFileUpload(params){
+            let newfile=params.file
+            let suffix = (newfile.name).substr((newfile.name).lastIndexOf("."));
+            newfile =new File([params.file], this.randomLong()+`${suffix}`)
+            newfile.uid=params.file.uid // new File 没有uid属性,会导致组件底层报错,这里手动加上
+            console.log(newfile)
+            // 使用FormData传参数和文件
+            var fileForm = new FormData();
+            // 文件
+            fileForm.append("file", newfile);
+            // 调用封装好的上传方法,传给后台FormData
+            upload(fileForm).then(res=>{
+                if(res && res.data.code == 200){
+                    this.fileList.push({
+                        'id': res.data.id,
+                        'name':res.data.filename,
+                        'url': process.env.NODE_ENV == "development"
+                        ? "https://dev-sy.derom.com/document-center/minio/"+res.data.filepath
+                        : "https://sy.derom.com/document-center/minio/"+res.data.filepath
+                    })
+                    this.imgs = process.env.NODE_ENV == "development"
+                        ? "https://sy.derom.com/01762feca72748b9b343c861753fe6f.png"
+                        : "https://sy.derom.com/document-center/minio/"+res.data.filepath
+                    this.sends()
+                    this.$modal.msgSuccess("上传成功");
+                }
+            })
+        },
+        upload(){
+            this.fileList = [];
+            this.imgList.forEach(element => {
+                this.fileList.push({
+                    'id': element.id,
+                    'name':element.filename,
+                    'url': element.filepath
+                })
+            });
+            this.dialogVisible = true;
+        },
+        handleClose(done) {
+            this.$confirm('确认关闭?')
+            .then(_ => {
+                done();
+            })
+            .catch(_ => {});
+        },
+        canclUpload(){
+            this.dialogVisible = false;
+        },
+        submitUpload(){
+            this.imgList = [];
+            this.fileList.forEach(element => {
+                let arr = [];
+                arr.push(element.url);
+                this.imgList.push({
+                    'id': element.id,
+                    'filename': element.name,
+                    'filepath': element.url,
+                    'srcList': arr
+                })
+            });
+            this.dialogVisible = false;
+        },
+        handleRemove(file, fileList) {
+            this.fileList = [];
+            fileList.forEach(element => {
+                this.fileList.push({
+                    'id': element.id,
+                    'name':element.name,
+                    'url': element.url
+                })
+            });
+        },
+        addTable() {
+            const newRow = { id: this.randomLong(), scopeLevel: '', code: '', name: '', remark: '' };
+            this.tableData.push(newRow);
+        },
+        deleteTable(e) {
+          this.tableData = this.tableData.filter(row =>
+              row.id != e.id
+          );
+        },
+        randomLong() {
+            const min = Number.MIN_SAFE_INTEGER;
+            const max = Number.MAX_SAFE_INTEGER;
+            // 50% chance of a negative number
+            const isNegative = Math.random() < 0.5;
+            const randomValue = Math.random() * (max - min) + min;
+            return isNegative ? Math.round(randomValue) : Math.round(randomValue) * -1;
+        },
+      returnPage(){
+        this.$emit('change', false);
+      },
+        tj(state){
+            this.form.workState = state;
+            this.$set(this.form, 'zjBusinessScopeList', this.tableData)
+            this.$set(this.form, 'organizationId', this.baseInfoData.organizationId);
+            this.$set(this.form, 'companyAttributes', this.baseInfoData.companyAttributes);
+            this.$set(this.form, 'companySourceCode', this.baseInfoData.companySourceCode);
+            if(this.imgList.length>0){
+                let pics = '';
+                this.imgList.forEach(element => {
+                    pics += element.id+',';
+                });
+                if(pics!=''){
+                    pics = pics.slice(0, -1);
+                    this.form.licensePicture = pics;
+                }
+            }
+            addOrEdit(this.form).then(res=>{
+                if(res.code == 200){
+                    this.$modal.msgSuccess("提交成功");
+                    this.$router.go(-1)
+                }
+            })
+        },
+        bc(state){
+            this.form.workState = state;
+            this.$set(this.form, 'zjBusinessScopeList', this.tableData)
+            this.$set(this.form, 'organizationId', this.baseInfoData.organizationId);
+            this.$set(this.form, 'companyAttributes', this.baseInfoData.companyAttributes);
+            this.$set(this.form, 'companySourceCode', this.baseInfoData.companySourceCode);
+            if(this.imgList.length>0){
+                let pics = '';
+                this.imgList.forEach(element => {
+                    pics += element.id+',';
+                });
+                if(pics!=''){
+                    pics = pics.slice(0, -1);
+                    this.form.licensePicture = pics;
+                }
+            }
+            addOrEdit(this.form).then(res=>{
+                if(res.code == 200){
+                    this.$modal.msgSuccess("保存成功");
+                }
+            })
+        },
+        async sends(){
+            const response = await axios.post('https://zhiguan.cognitiveservices.azure.cn/vision/v3.2/read/analyze', {'url': this.imgs}, {
+                headers: {
+                    'Ocp-Apim-Subscription-Key': this.key,
+                    'Content-Type': 'application/json'
+                }
+            });
+            // console.log("A:::" +  JSON.stringify(response))
+            if(response.status == '202'){
+                let Operations = response.headers["operation-location"];
+                // console.log("B:::" + Operations)
+                setTimeout(()=>{
+                    this.sendGet(Operations);
+                },1000)
+            }else{
+                console.log("图片解析失败!")
+            }
+        },
+        async sendGet(url){
+            const res = await axios.get(url, {
+                headers: {
+                    'Ocp-Apim-Subscription-Key': this.key,
+                    'Content-Type': 'application/json'
+                }
+            });
+            // console.log("C:::" +  JSON.stringify(res))
+            if(res.data.status == 'succeeded'){
+                let ocrs  =  res.data.analyzeResult.readResults;
+                if(ocrs.length>0){
+                    let lines = ocrs[0].lines;
+                    lines.forEach((element,index) => {
+                        console.log("A:::" + element.text)
+                        if(element.text.includes('许可证编号')){
+                            if(element.text.includes(':')){
+                                this.form.licenseNumber = element.text.substr(6);
+                            }else{
+                                this.form.licenseNumber = element.text.substr(5);
+                            }
+                            this.form.licenseNumber = this.form.licenseNumber.split(' ').join('')
+                        }
+                        if(element.text.includes('许可证') && !element.text.includes('编号')){
+                            this.form.licenseName = element.text;
+                            this.form.licenseName = this.form.licenseName.split(' ').join('')
+                        }
+                        if(element.text.includes('发证机关')||element.text.includes('发证部门')||element.text.includes('颁证机构')){
+                            if(element.text.includes(':')){
+                                this.form.licenseCompany = element.text.substr(5);
+                            }else{
+                                this.form.licenseCompany = element.text.substr(4);
+                            }
+                            if(!lines[index+1].text.includes(":")){
+                                this.form.licenseCompany += lines[index+1].text;
+                            }
+                            this.form.licenseCompany = this.form.licenseCompany.split(' ').join('').split(',').join('')
+                        }
+                        if(element.text.includes('生产方式') || element.text.includes('经营方式')){
+                            if(element.text.includes(':')){
+                                this.form.businessType = element.text.substr(5);
+                            }else{
+                                this.form.businessType = element.text.substr(4);
+                            }
+                            if(!lines[index+1].text.includes(":")){
+                                this.form.businessType += lines[index+1].text;
+                            }
+                            this.form.businessType = this.form.businessType.split(' ').join('')
+                        }
+                        if(element.text.includes('有效期限') && !element.text.includes('至')){
+                            let wb = '';
+                            if(element.text.includes(':')){
+                                wb = element.text.substr(5);
+                                if(wb != ''){
+                                    wb = wb.replace('年','-');
+                                    wb = wb.replace('月','-');
+                                    wb = wb.replace('日','');
+                                    wb = wb.split(' ').join('')
+                                    this.form.validUntil = wb;
+                                }
+                            }else{
+                                wb = element.text.substr(4);
+                                if(wb != ''){
+                                    wb = wb.replace('年','-');
+                                    wb = wb.replace('月','-');
+                                    wb = wb.replace('日','');
+                                    wb = wb.split(' ').join('')
+                                    this.form.validUntil = wb;
+                                }
+                            }
+                        }
+                        if(element.text.includes('至')){
+                            let wb = '';
+                            wb = element.text.substr(1);
+                            if(wb != ''){
+                                wb = wb.replace('年','-');
+                                wb = wb.replace('月','-');
+                                wb = wb.replace('日','');
+                                wb = wb.split(' ').join('')
+                                this.form.validUntil = wb;
+                            }
+                        }
+                        if(element.text.includes('发证日期')){
+                            let wb = '';
+                            if(element.text.includes(':')){
+                                wb = element.text.substr(5);
+                                if(wb != ''){
+                                    wb = wb.replace('年','-');
+                                    wb = wb.replace('月','-');
+                                    wb = wb.replace('日','');
+                                    wb = wb.split(' ').join('')
+                                    this.form.licenseDate = wb;
+                                }
+                            }else{
+                                wb = element.text.substr(4);
+                                if(wb != ''){
+                                    wb = wb.replace('年','-');
+                                    wb = wb.replace('月','-');
+                                    wb = wb.replace('日','');
+                                    wb = wb.split(' ').join('')
+                                    this.form.licenseDate = wb;
+                                }
+                            }
+                        }
+                    });
+                }
+            }
+        },
+    },
+  };
+</script>
+<style>
+.baseinfoClass {
+    margin-left: 4vw;
+}
+.text-with-line {
+    position: relative;
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 5px; /* 确保条线在文字下方 */
+}
+.text-with-line::after {
+    content: '';
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    width: 100%; /* 条线的宽度 */
+    height: 2px; /* 条线的高度 */
+    background: #000; /* 条线的颜色 */
+}
+.container {
+    display: flex;
+    justify-content: flex-end; /* 这会把子元素放在容器的右边 */
+}
+.button-container {
+  position: fixed;  /* 使用fixed定位,使得容器始终相对于浏览器窗口 */
+  top: 10px;        /* 距离顶部10像素 */
+  right: 60px;      /* 距离右侧10像素 */
+  z-index: 1000;    /* 设置一个较高的z-index确保按钮在其他内容之上 */
+}
+</style>

+ 0 - 0
src/views/sharedLicense/shareUser/index.vue