Просмотр исходного кода

Merge branch 'master' of http://119.23.210.103:3000/wy/mj_firm_former

zjy 3 лет назад
Родитель
Сommit
71aac2a9f7

+ 103 - 0
package-lock.json

@@ -72,8 +72,10 @@
         "video.js": "^7.8.4",
         "vue": "^2.6.12",
         "vue-aplayer": "^1.6.1",
+        "vue-barcode": "^1.3.0",
         "vue-codemirror": "^4.0.6",
         "vue-count-to": "^1.0.13",
+        "vue-easy-print": "^0.0.8",
         "vue-echarts": "^5.0.0-beta.0",
         "vue-grid-layout": "^2.3.8",
         "vue-i18n": "^8.21.0",
@@ -12752,6 +12754,66 @@
         "js-yaml": "bin/js-yaml.js"
       }
     },
+    "node_modules/jsbarcode": {
+      "version": "3.11.5",
+      "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.5.tgz",
+      "integrity": "sha512-zv3KsH51zD00I/LrFzFSM6dst7rDn0vIMzaiZFL7qusTjPZiPtxg3zxetp0RR7obmjTw4f6NyGgbdkBCgZUIrA==",
+      "bin": {
+        "auto.js": "bin/barcodes/CODE128/auto.js",
+        "Barcode.js": "bin/barcodes/Barcode.js",
+        "barcodes": "bin/barcodes",
+        "canvas.js": "bin/renderers/canvas.js",
+        "checksums.js": "bin/barcodes/MSI/checksums.js",
+        "codabar": "bin/barcodes/codabar",
+        "CODE128": "bin/barcodes/CODE128",
+        "CODE128_AUTO.js": "bin/barcodes/CODE128/CODE128_AUTO.js",
+        "CODE128.js": "bin/barcodes/CODE128/CODE128.js",
+        "CODE128A.js": "bin/barcodes/CODE128/CODE128A.js",
+        "CODE128B.js": "bin/barcodes/CODE128/CODE128B.js",
+        "CODE128C.js": "bin/barcodes/CODE128/CODE128C.js",
+        "CODE39": "bin/barcodes/CODE39",
+        "constants.js": "bin/barcodes/ITF/constants.js",
+        "defaults.js": "bin/options/defaults.js",
+        "EAN_UPC": "bin/barcodes/EAN_UPC",
+        "EAN.js": "bin/barcodes/EAN_UPC/EAN.js",
+        "EAN13.js": "bin/barcodes/EAN_UPC/EAN13.js",
+        "EAN2.js": "bin/barcodes/EAN_UPC/EAN2.js",
+        "EAN5.js": "bin/barcodes/EAN_UPC/EAN5.js",
+        "EAN8.js": "bin/barcodes/EAN_UPC/EAN8.js",
+        "encoder.js": "bin/barcodes/EAN_UPC/encoder.js",
+        "ErrorHandler.js": "bin/exceptions/ErrorHandler.js",
+        "exceptions": "bin/exceptions",
+        "exceptions.js": "bin/exceptions/exceptions.js",
+        "fixOptions.js": "bin/help/fixOptions.js",
+        "GenericBarcode": "bin/barcodes/GenericBarcode",
+        "getOptionsFromElement.js": "bin/help/getOptionsFromElement.js",
+        "getRenderProperties.js": "bin/help/getRenderProperties.js",
+        "help": "bin/help",
+        "index.js": "bin/renderers/index.js",
+        "index.tmp.js": "bin/barcodes/index.tmp.js",
+        "ITF": "bin/barcodes/ITF",
+        "ITF.js": "bin/barcodes/ITF/ITF.js",
+        "ITF14.js": "bin/barcodes/ITF/ITF14.js",
+        "JsBarcode.js": "bin/JsBarcode.js",
+        "linearizeEncodings.js": "bin/help/linearizeEncodings.js",
+        "merge.js": "bin/help/merge.js",
+        "MSI": "bin/barcodes/MSI",
+        "MSI.js": "bin/barcodes/MSI/MSI.js",
+        "MSI10.js": "bin/barcodes/MSI/MSI10.js",
+        "MSI1010.js": "bin/barcodes/MSI/MSI1010.js",
+        "MSI11.js": "bin/barcodes/MSI/MSI11.js",
+        "MSI1110.js": "bin/barcodes/MSI/MSI1110.js",
+        "object.js": "bin/renderers/object.js",
+        "options": "bin/options",
+        "optionsFromStrings.js": "bin/help/optionsFromStrings.js",
+        "pharmacode": "bin/barcodes/pharmacode",
+        "renderers": "bin/renderers",
+        "shared.js": "bin/renderers/shared.js",
+        "svg.js": "bin/renderers/svg.js",
+        "UPC.js": "bin/barcodes/EAN_UPC/UPC.js",
+        "UPCE.js": "bin/barcodes/EAN_UPC/UPCE.js"
+      }
+    },
     "node_modules/jsbn": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
@@ -20165,6 +20227,14 @@
         "vue": "^2.5.16"
       }
     },
+    "node_modules/vue-barcode": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/vue-barcode/-/vue-barcode-1.3.0.tgz",
+      "integrity": "sha512-DxQ0hxes/dP6GajsJumpW6jV14VwlnTwStZbtE6G0wkewuJVDoDOdxUr5seGuxsMT9fJ0aty4X47Z5TG0M/gxg==",
+      "dependencies": {
+        "jsbarcode": "^3.5.8"
+      }
+    },
     "node_modules/vue-cli-plugin-i18n": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/vue-cli-plugin-i18n/-/vue-cli-plugin-i18n-1.0.1.tgz",
@@ -20199,6 +20269,18 @@
       "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
       "integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ=="
     },
+    "node_modules/vue-easy-print": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmmirror.com/vue-easy-print/-/vue-easy-print-0.0.8.tgz",
+      "integrity": "sha512-QF3CJvWkAWP8BSaxdIrmGASkkuNX3bDUXyWx7/rE8DGGShP20Ap2H0P1w5oKqgN7pJcHH8ZywdvhQk7ggp0Z4w==",
+      "dependencies": {
+        "vue": "^2.5.11"
+      },
+      "engines": {
+        "node": ">= 4.0.0",
+        "npm": ">= 3.0.0"
+      }
+    },
     "node_modules/vue-echarts": {
       "version": "5.0.0-beta.0",
       "resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-5.0.0-beta.0.tgz",
@@ -32215,6 +32297,11 @@
         "esprima": "^4.0.0"
       }
     },
+    "jsbarcode": {
+      "version": "3.11.5",
+      "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.11.5.tgz",
+      "integrity": "sha512-zv3KsH51zD00I/LrFzFSM6dst7rDn0vIMzaiZFL7qusTjPZiPtxg3zxetp0RR7obmjTw4f6NyGgbdkBCgZUIrA=="
+    },
     "jsbn": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
@@ -38470,6 +38557,14 @@
       "integrity": "sha512-c+ZAwZ63bVDsKkcHeKLAonIL2gY4nrVRdKypoPRXSkh+8B1cVhFT2tx8HSTNT6eX6WZyDtaYrEJfcgetrfvcdQ==",
       "requires": {}
     },
+    "vue-barcode": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/vue-barcode/-/vue-barcode-1.3.0.tgz",
+      "integrity": "sha512-DxQ0hxes/dP6GajsJumpW6jV14VwlnTwStZbtE6G0wkewuJVDoDOdxUr5seGuxsMT9fJ0aty4X47Z5TG0M/gxg==",
+      "requires": {
+        "jsbarcode": "^3.5.8"
+      }
+    },
     "vue-cli-plugin-i18n": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/vue-cli-plugin-i18n/-/vue-cli-plugin-i18n-1.0.1.tgz",
@@ -38500,6 +38595,14 @@
       "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
       "integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ=="
     },
+    "vue-easy-print": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmmirror.com/vue-easy-print/-/vue-easy-print-0.0.8.tgz",
+      "integrity": "sha512-QF3CJvWkAWP8BSaxdIrmGASkkuNX3bDUXyWx7/rE8DGGShP20Ap2H0P1w5oKqgN7pJcHH8ZywdvhQk7ggp0Z4w==",
+      "requires": {
+        "vue": "^2.5.11"
+      }
+    },
     "vue-echarts": {
       "version": "5.0.0-beta.0",
       "resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-5.0.0-beta.0.tgz",

+ 1 - 1
src/business/platform/file/attachment/editFile/editor.vue

@@ -89,7 +89,7 @@ export default {
         },
         documentType: this.doctype,
         editorConfig: {
-          callbackUrl: option.editUrl,
+          callbackUrl: option.editUrl + '&access_token=' + getToken(),
           lang: 'zh',
           canHistoryRestore:true,
           canUseHistory:true,

+ 2 - 2
src/views/infosManage/externalFiles/externalFiles.vue

@@ -76,12 +76,12 @@ export default {
                     forms: [
                         { prop: 'fileCode', label: '文件编号' },
                         { prop: 'fileName', label: '文件名称' },
-                        { prop: 'deptName', label: '部门' },
+                        // { prop: 'deptName', label: '部门' },
                     ]
                 },
                 // 表格字段配置
                 columns: [
-                    { prop: 'zi_duan_yi_', label: '部门' },
+                    // { prop: 'zi_duan_yi_', label: '部门' },
                     { prop: 'wen_jian_bian_hao', label: '文件编号' },
                     { prop: 'wen_jian_ming_che', label: '文件名称' },
                     { prop: 'ban_ben_hao_', label: '版本号' },

+ 2 - 2
src/views/infosManage/internalFiles/internalFiles.vue

@@ -86,12 +86,12 @@ export default {
                     forms: [
                         { prop: 'fileCode', label: '文件编号' },
                         { prop: 'fileName', label: '文件名称' },
-                        { prop: 'deptName', label: '部门' },
+                        // { prop: 'deptName', label: '部门' },
                     ]
                 },
                 // 表格字段配置
                 columns: [
-                    { prop: 'zi_duan_yi_', label: '部门' },
+                    // { prop: 'zi_duan_yi_', label: '部门' },
                     { prop: 'wen_jian_bian_hao', label: '文件编号' },
                     { prop: 'wen_jian_ming_che', label: '文件名称' },
                     { prop: 'ban_ben_hao_', label: '版本号' },

+ 234 - 277
src/views/platform/bpmn/bpmInstHis/list.vue

@@ -2,106 +2,57 @@
   <div class="main-container">
 
     <div slot="west">
-      <ibps-type-tree
-        :width="width"
-        :height="height"
-        title="记录分类"
-        :location="location"
-        category-key="FLOW_TYPE"
-        @node-click="handleNodeClick"
-        @expand-collapse="handleExpandCollapse"
-      />
+      <ibps-type-tree :width="width" :height="height" title="记录分类" :location="location" category-key="FLOW_TYPE"
+        @node-click="handleNodeClick" @expand-collapse="handleExpandCollapse" />
     </div>
-    <ibps-crud
-      v-if="!listType"
-      ref="crud"
-      :style="{ marginLeft: width+'px' }"
-      :height="height"
-      :data="listData"
-      :toolbars="listConfig.toolbars"
-      :search-form="listConfig.searchForm"
-      :pk-key="pkKey"
-      :displayField = "tableTitle"
-      :columns="listConfig.columns"
-      :row-handle="listConfig.rowHandle"
-      :pagination="pagination"
-      :loading="loading"
-      :index-row="false"
-      :selection-row="selection"
-      @action-event="handleAction"
-      @sort-change="handleSortChange"
-      @column-link-click="handleLinkClick"
-      @pagination-change="handlePaginationChange"
-    >
+    <ibps-crud v-if="!listType" ref="crud" :style="{ marginLeft: width + 'px' }" :height="height" :data="listData"
+      :toolbars="listConfig.toolbars" :search-form="listConfig.searchForm" :pk-key="pkKey" :displayField="tableTitle"
+      :columns="listConfig.columns" :row-handle="listConfig.rowHandle" :pagination="pagination" :loading="loading"
+      :index-row="false" :selection-row="selection" @action-event="handleAction" @sort-change="handleSortChange"
+      @column-link-click="handleLinkClick" @pagination-change="handlePaginationChange">
 
-    <template slot="selectCont" slot-scope="scope">
-      <el-popover
-        :ref="'popover2-' + scope.row.id"
-        placement="bottom"
-        width="250"
-        popper-class="popverClass"
-        trigger="click"
-        @show="getReportAndFile(scope.row)"
-      >
-        <!-- 触发事件 --> <!-- @click="handleAction('detail',null,null,scope.row)"-->
-        <div class="div_test el-icon-s-order" slot="reference" >查阅记录</div>
-        <!-- 弹框内容 -->
-        <div class="div_content">
-          <!-- 获取所有输出报告-->
-          <div class="content_butts" v-if="currReportCont.report.length>0" v-for="(item, i) in currReportCont.report">
-            <span style="cursor: pointer;" @click="clickCont(currReportCont,i)">
-             <i class="el-icon-tickets" style="font-size: 18px;"/>
-            {{item.split('/')[1].split('.')[0].split(' ')[1]}}
-            </span>
-            <br>
-          </div>
+      <template slot="selectCont" slot-scope="scope">
+        <el-popover :ref="'popover2-' + scope.row.id" placement="bottom" width="250" popper-class="popverClass"
+          trigger="click" @show="getReportAndFile(scope.row)">
+          <!-- 触发事件 --> <!-- @click="handleAction('detail',null,null,scope.row)"-->
+          <div class="div_test el-icon-s-order" slot="reference">查阅记录</div>
+          <!-- 弹框内容 -->
+          <div class="div_content">
+            <!-- 获取所有输出报告-->
+            <div class="content_butts" v-if="currReportCont.report.length > 0"
+              v-for="(item, i) in currReportCont.report">
+              <span style="cursor: pointer;" @click="clickCont(currReportCont, i)">
+                <i class="el-icon-tickets" style="font-size: 18px;" />
+                {{ item.slice(-item.split("").reverse().join("").indexOf(' '),
+                    -item.split("").reverse().join("").indexOf('.') - 1)
+                }}
+                <!-- {{ item.split('/')[1].split('.')[0].split(' ')[1] }} -->
+              </span>
+              <br>
+            </div>
 
-          <div class="content_butts" v-if="currReportCont.file">
-           <ibps-attachment v-model="fileId" placeholder="请选择" :download="true"  :readonly="true"
-             accept="*" :multiple="true" upload-type="attachment" store="id" media-type=""
-             media="" style="width:100%;" />
-          </div>
+            <div class="content_butts" v-if="currReportCont.file">
+              <ibps-attachment v-model="fileId" placeholder="请选择" :download="true" :readonly="true" accept="*"
+                :multiple="true" upload-type="attachment" store="id" media-type="" media="" style="width:100%;" />
+            </div>
 
 
-        </div>
-      </el-popover>
-    </template>
+          </div>
+        </el-popover>
+      </template>
 
     </ibps-crud>
-     <typeList
-        v-else
-       :listType="listType"
-       :tableTitle ="tableTitle"
-       :reportAll = "reportAll"
-       :typeId = "typeId"
-       />
+    <typeList v-else :listType="listType" :tableTitle="tableTitle" :reportAll="reportAll" :typeId="typeId" />
 
-    <bpmn-formrender
-      :visible="dialogFormVisible"
-      :instance-id="instanceId"
-      @close="visible => dialogFormVisible = visible"
-    />
+    <bpmn-formrender :visible="dialogFormVisible" :instance-id="instanceId"
+      @close="visible => dialogFormVisible = visible" />
 
-        <el-dialog
-          :close-on-click-modal="false"
-          :close-on-press-escape="false"
-          :top="'3vh'"
-          :width="'90%'"
-          class="js-custom-dialog"
-          append-to-body
-          :fullscreen="false"
-          :visible.sync="visible"
-        >
+    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :top="'3vh'" :width="'90%'"
+      class="js-custom-dialog" append-to-body :fullscreen="false" :visible.sync="visible">
 
-            <iframe
-              :src="srcUrl"
-              :height="'100%'"
-              :width="'100%'"
-              frameborder="0"
-              scrolling="no"
-            />
+      <iframe :src="srcUrl" :height="'100%'" :width="'100%'" frameborder="0" scrolling="no" />
 
-      </el-dialog>
+    </el-dialog>
 
   </div>
 
@@ -124,35 +75,35 @@ export default {
     IbpsTypeTree,
     BpmnFormrender,
     typeList,
-   'ibps-attachment': IbpsAttachment
+    'ibps-attachment': IbpsAttachment
   },
-  mixins: [FixHeight,GetReport],
-  props:{
-    location:{
-      type:String,
+  mixins: [FixHeight, GetReport],
+  props: {
+    location: {
+      type: String,
       default: 'initial'
     }
   },
   data() {
     return {
       width: 200,
-      selection : false,
+      selection: false,
       dialogFormVisible: false, // 弹窗
       instanceId: '', // 编辑dialog需要使用
       pkKey: 'id', // 主键  如果主键不是pk需要传主键
-      tableTitle:'',
-      typeId:'',
-      listType:'',
-      srcUrl:'', //报表字段
-      fileId:'',//文件字段
-      isDisable:false, //判断多次点击
-      forClick:'',//判断是否重复点击
-      visible:false,
-      currReportCont:{},
+      tableTitle: '',
+      typeId: '',
+      listType: '',
+      srcUrl: '', //报表字段
+      fileId: '',//文件字段
+      isDisable: false, //判断多次点击
+      forClick: '',//判断是否重复点击
+      visible: false,
+      currReportCont: {},
       title: '',
       loading: true,
       height: document.clientHeight,
-      reportAll:[],
+      reportAll: [],
       listData: [],
       pagination: {},
       sorts: {},
@@ -163,36 +114,36 @@ export default {
         ],
         searchForm: {
           forms: [
-          { prop: 'Q^subject_^SL', label: '关键字:' , width: 125 },
-         /*  { prop: 'Q^proc_def_name_^SL', label: '任务名称' }, */
+            { prop: 'Q^subject_^SL', label: '关键字:', width: 125 },
+            /*  { prop: 'Q^proc_def_name_^SL', label: '任务名称' }, */
             // {
             //   prop: ['Q^create_Time_^DL', 'Q^create_Time_^DG'],
             //   label: '完成年度',
             //   fieldType: 'daterange',
             // },
-          /*  {
-              prop: 'Q^status_^S',
-              label: '任务状态',
-              fieldType: 'select',
-              options: searchOptions
-            } */
+            /*  {
+                prop: 'Q^status_^S',
+                label: '任务状态',
+                fieldType: 'select',
+                options: searchOptions
+              } */
           ]
         },
         // 表格字段配置
         columns: [
-         /* { prop: 'subject', label: '任务标题', link: 'dialog', width: 250 }, */
-          { prop: 'tYear', label: '年份', width: 58  },
-          { prop: 'tDept', label: '部门' , width: 80},
+          /* { prop: 'subject', label: '任务标题', link: 'dialog', width: 250 }, */
+          { prop: 'tYear', label: '年份', width: 58 },
+          { prop: 'tDept', label: '部门', width: 80 },
           { prop: 'procDefName', label: '表单名称' },
-          { prop: 'tUser', label: '编制人' , width: 80},
-          { prop: 'endTime', label: '完成时间', sortable: 'custom', dateFormat: 'yyyy-MM-dd', width:150 },
+          { prop: 'tUser', label: '编制人', width: 80 },
+          { prop: 'endTime', label: '完成时间', sortable: 'custom', dateFormat: 'yyyy-MM-dd', width: 150 },
         ],
         rowHandle: {
           actions: [/* {
             key: 'detail',label:"内容及附件"
           } */],
-           effect:'display',
-            width:'100'//固定按钮
+          effect: 'display',
+          width: '100'//固定按钮
         }
       }
     }
@@ -201,121 +152,121 @@ export default {
     this.loadData()
     this.getConfig() //获取配置的报表
     let roleArr = this.$store.getters.userInfo.role
-     // console.log(roleArr)
-     for(let i = 0 ; i < roleArr.length; i++){
-       if(roleArr[i].name == "系统管理角色"){
-         this.listConfig.toolbars.push({key:'remove'})
-         this.selection  = true
-         return;
-       }
-     }
+    // console.log(roleArr)
+    for (let i = 0; i < roleArr.length; i++) {
+      if (roleArr[i].name == "系统管理角色") {
+        this.listConfig.toolbars.push({ key: 'remove' })
+        this.selection = true
+        return;
+      }
+    }
   },
   methods: {
     /*获取配置报表数据*/
-    getConfig(){
-      curdPost('select',this.packNameWhere('t_lcidglbdbb',{'1':'1'})).then(response => {
-                 this.reportAll = response.variables.data
-               })
-      },
-      /* 封装表名与条件*/
-      packNameWhere(name,where){
-        let cont = {}
-        cont['tableName'] = name
-        cont['paramWhere'] = where
-        return cont
-      },
+    getConfig() {
+      curdPost('select', this.packNameWhere('t_lcidglbdbb', { '1': '1' })).then(response => {
+        this.reportAll = response.variables.data
+      })
+    },
+    /* 封装表名与条件*/
+    packNameWhere(name, where) {
+      let cont = {}
+      cont['tableName'] = name
+      cont['paramWhere'] = where
+      return cont
+    },
     // 加载数据
     loadData() {
       this.loading = true
       queryPageList(this.getSearcFormData()).then(response => {
-       let data = response.data.dataResult
-        for(let i in data){
-         let dept,user,tName,tYear
-         let arr = this.getParenthesesStr(data[i].subject)
-            if(arr.length ==4){ //如果是年度计划, 标题编辑中取年份, 去除默认给与的年份
-              data[i]['tYear'] = arr[0]
-              data[i]['tDept'] = arr[2]
-              data[i]['tUser'] = arr[3]
-            }else if(arr.length>1){
-               data[i]['tYear'] = arr[0]
-               data[i]['tDept'] = arr[1]
-               data[i]['tUser'] = arr[2]
-             }
+        let data = response.data.dataResult
+        for (let i in data) {
+          let dept, user, tName, tYear
+          let arr = this.getParenthesesStr(data[i].subject)
+          if (arr.length == 4) { //如果是年度计划, 标题编辑中取年份, 去除默认给与的年份
+            data[i]['tYear'] = arr[0]
+            data[i]['tDept'] = arr[2]
+            data[i]['tUser'] = arr[3]
+          } else if (arr.length > 1) {
+            data[i]['tYear'] = arr[0]
+            data[i]['tDept'] = arr[1]
+            data[i]['tUser'] = arr[2]
           }
-          // console.log('csnz\n',response.data,'\n')
+        }
+        // console.log('csnz\n',response.data,'\n')
         ActionUtils.handleListData(this, response.data)
         this.loading = false
       }).catch(() => {
         this.loading = false
       })
     },
-   getParenthesesStr(text) {
-        let result = ''
-        if (!text) return result
-        let regex = /\((.+?)\)/g;
-        let options = text.match(regex)
-        if (options) {
-            let option = options[0]
-            if (option) {
-                result = option.substring(1, option.length - 1)
-            }
-            if(options[1]){
-              let yersOption = options[1]
-              if (yersOption) {
-                  result =result +'/'+ yersOption.substring(1, yersOption.length - 1)
-              }
-            }
+    getParenthesesStr(text) {
+      let result = ''
+      if (!text) return result
+      let regex = /\((.+?)\)/g;
+      let options = text.match(regex)
+      if (options) {
+        let option = options[0]
+        if (option) {
+          result = option.substring(1, option.length - 1)
         }
-        return result.split('/')
+        if (options[1]) {
+          let yersOption = options[1]
+          if (yersOption) {
+            result = result + '/' + yersOption.substring(1, yersOption.length - 1)
+          }
+        }
+      }
+      return result.split('/')
     },
     /**
      * 获取格式化参数
      */
     getSearcFormData() {
-        const params = this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {}
+      const params = this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {}
 
-        if (this.$utils.isNotEmpty(this.typeId)) {
-          params['Q^TYPE_ID_^S'] = this.typeId
-        }
+      if (this.$utils.isNotEmpty(this.typeId)) {
+        params['Q^TYPE_ID_^S'] = this.typeId
+      }
 
-        params['Q^status_^S'] ="end"
-       let cont = ActionUtils.formatParams(
-          params,
-          this.pagination,
-          this.sorts)
+      params['Q^status_^S'] = "end"
+      let cont = ActionUtils.formatParams(
+        params,
+        this.pagination,
+        this.sorts)
 
-          cont.parameters.push({
-                            "parameters": [
-                                {
-                                    "parameters": [
-                                        {
-                                            "key": "Q^proc_Def_Key_^NE",
-                                            "value": "Process_08hbmhs",
-                                            "param": "name"
-                                        }
-                                    ]
-                                },
-                                {
-                                    "parameters": [
-                                        {
-                                            "key": "Q^proc_Def_Key_^NE",
-                                            "value": "Process_0xlaidt",
-                                            "param": "name1"
-                                        }
-                                    ]
-                                },
-                                {
-                                    "parameters": [
-                                        {
-                                            "key": "Q^proc_Def_Key_^NE",
-                                            "value": "Process_0ocg0f1",
-                                            "param": "name2"
-                                        }
-                                    ]
-                                }
-                            ]
-                        })
-           return cont
+      cont.parameters.push({
+        "parameters": [
+          {
+            "parameters": [
+              {
+                "key": "Q^proc_Def_Key_^NE",
+                "value": "Process_08hbmhs",
+                "param": "name"
+              }
+            ]
+          },
+          {
+            "parameters": [
+              {
+                "key": "Q^proc_Def_Key_^NE",
+                "value": "Process_0xlaidt",
+                "param": "name1"
+              }
+            ]
+          },
+          {
+            "parameters": [
+              {
+                "key": "Q^proc_Def_Key_^NE",
+                "value": "Process_0ocg0f1",
+                "param": "name2"
+              }
+            ]
+          }
+        ]
+      })
+      return cont
 
     },
     /**
@@ -342,11 +293,11 @@ export default {
       this.loadData()
     },
     /* 防止多次快速查询*/
-    numbersClick(){
+    numbersClick() {
       this.isDisable = true
-          setTimeout(() => {
-           this.isDisable = false
-          }, 600)
+      setTimeout(() => {
+        this.isDisable = false
+      }, 600)
     },
 
     /**
@@ -364,31 +315,31 @@ export default {
         //   this.search()
         //   break
         case 'remove':
-           let str = ""
-           selection.forEach((item,index)=>{
-             if(index==0){
-               str+=item
-             }else{
-               str+=","+item
-             }
-           })
-           let data={}
-           data['tableName']="ibps_bpm_inst_his"
-           data['paramWhere']="{id_:'"+str+"'}"
-           let this_ = this
-           curdPost('batchDelete',data).then( response => {
-               this_.$message({
-               message: '删除成功!',
-               type: 'warning'
-             })
-             this.search()
-           })
+          let str = ""
+          selection.forEach((item, index) => {
+            if (index == 0) {
+              str += item
+            } else {
+              str += "," + item
+            }
+          })
+          let data = {}
+          data['tableName'] = "ibps_bpm_inst_his"
+          data['paramWhere'] = "{id_:'" + str + "'}"
+          let this_ = this
+          curdPost('batchDelete', data).then(response => {
+            this_.$message({
+              message: '删除成功!',
+              type: 'warning'
+            })
+            this.search()
+          })
 
-             break
+          break
 
         case 'detail':// 明细
-         ActionUtils.selectedRecord(selection).then((id) => {
-          this.handleEdit(id)
+          ActionUtils.selectedRecord(selection).then((id) => {
+            this.handleEdit(id)
             this.title = '信息'
           }).catch(() => { })
           break
@@ -397,15 +348,15 @@ export default {
       }
     },
 
-    handleNodeClick(typeId,typeName) {
+    handleNodeClick(typeId, typeName) {
       this.tableTitle = typeName.name
       this.typeId = typeId
       // console.log(typeId)
       /* 如果是特殊处理添加列表中的数据*/
-      if(!listTypeData[typeId]){
+      if (!listTypeData[typeId]) {
         this.listType = ''
         this.loadData()
-      }else{
+      } else {
         this.listType = listTypeData[typeId]
       }
     },
@@ -423,49 +374,55 @@ export default {
 }
 </script>
 <style lang="scss" >
-.js-custom-dialog{
-  .el-dialog__body{
-      height:  calc(100vh) !important;
-      margin: -9px !important;
-      padding: 0px !important;
-	  overflow: hidden;
+.js-custom-dialog {
+  .el-dialog__body {
+    height: calc(100vh) !important;
+    margin: -9px !important;
+    padding: 0px !important;
+    overflow: hidden;
   }
-  .el-dialog__header{
+
+  .el-dialog__header {
     padding: 0px;
   }
+
   .el-dialog__headerbtn i {
-   font-size: 28px;
-   font-weight: bold;
-   background-color: #FFFFFF;
-   border-radius: 8px;
-   margin-top: -8px;
+    font-size: 28px;
+    font-weight: bold;
+    background-color: #FFFFFF;
+    border-radius: 8px;
+    margin-top: -8px;
   }
 }
 </style>
 <style>
-   .main-container .div_test{
-     cursor: pointer;
-   }
-   .main-container .el-popover.popverClass {
-     .div_content {
-       .content_checkbox {
-         .el-checkbox-group {
-           display: flex;
-           flex-direction: column;
-           z-index: 999;
-         }
-         z-index: 999;
-       }
-        .content_butts {
-          z-index: 999;
-             margin-top: 20px;
-             display: flex;
-             justify-content: flex-end;
-             .el-button {
-               padding: 7px 14px;
-              }
-            }
-          }
+.main-container .div_test {
+  cursor: pointer;
+}
 
-       }
+.main-container .el-popover.popverClass {
+  .div_content {
+    .content_checkbox {
+      .el-checkbox-group {
+        display: flex;
+        flex-direction: column;
+        z-index: 999;
+      }
+
+      z-index: 999;
+    }
+
+    .content_butts {
+      z-index: 999;
+      margin-top: 20px;
+      display: flex;
+      justify-content: flex-end;
+
+      .el-button {
+        padding: 7px 14px;
+      }
+    }
+  }
+
+}
 </style>

+ 1 - 1
src/views/remindPage/sealCompleted.vue

@@ -3,7 +3,7 @@
         <div class="center">
             <img class="ok-img" src="../../assets/images/success/completed.png" alt="">
             <div>
-                签章已经完成,请关闭当前页面,回到上个页面继续检测流程
+                签章已经完成,请关闭当前页面,回到上个页面继续操作
             </div>
         </div>
     </div>

+ 168 - 0
src/views/system/forget/stateDetails.vue

@@ -0,0 +1,168 @@
+<template>
+  <div class="sample-scan">
+   <el-input
+      v-model="facilityId"
+      ref="redarInput"
+      style="z-index: -999;">
+    </el-input> 
+    <div class="popContainer" v-if="redar" @click="remRedar">
+      <dv-decoration-12 style="width:150px;height:150px;margin:0 auto;top: 35%;">
+        <span style=" color: #66D9EF;"></span>
+      </dv-decoration-12>
+    </div>
+    <el-dialog
+      @click="getData"
+      title='内审阶段'
+      ref="dialog_ref"
+      :visible.sync="scanVisible"
+      :before-close="handleClose">
+      <div class="stepsContent">
+        <el-steps :active="active" finish-status="success" process-status="wait"  space="18%">
+          <el-step title="开始" ></el-step>
+          <el-step title="实施计划" process-status="finish"></el-step>
+          <el-step title="首次会议" process-status="wait"></el-step>
+          <el-step title="内审核查"></el-step>
+          <el-step title="末次会议"></el-step>
+          <el-step title="内审不符合项整改"></el-step>
+          <el-step title="内审报告"></el-step>
+          <el-step title="结束"></el-step>
+        </el-steps>
+        <!-- <el-button style="margin-top: 12px;" @click="next">下一步</el-button> -->
+      </div>
+      <!-- <div slot="footer" class="dialog-footer">
+        <el-button @click="centerDialogVisible = false">取消</el-button>
+        <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
+      </div> -->
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
+export default {
+  props: {
+    obj: {
+      default: [],
+      type: Array
+    },
+    scanVisible:{
+      type:Boolean,
+      default: false
+    },
+  },
+  data () {
+    return {
+      facilityId:'',
+      updateNum:1,
+      visible:false,
+      redar:false,
+      listData:[],
+      dialogVisible: false,
+      //默认第几个节点完成
+      active:2,
+      status:''
+    }
+  },
+  watch:{
+    listData: {
+      handler(val, oldName) {
+        if(val.length>0){
+          this.visible = true
+          this.redar = false    // 扫描后就让扫描组件隐藏
+        }
+      },
+      deep: true,
+      immediate: true
+    },
+   scanVisible:{
+     handler(val, oldName) {
+        if(val){
+          this.redar = false       // 扫码的组件  一开始先展示
+          this.visible = true    // 结果列表   一开始没扫描就不展示
+
+          this.$nextTick(() => {
+              this.$refs.redarInput.focus(); //聚焦input
+            })
+          this.listData = [] //清空列表
+        }else{
+          this.remRedar()
+        }
+     },
+     deep: true,
+     immediate: true
+   }
+  },
+  created() {
+    
+    
+  },
+  mounted(){
+    this.getData()
+    this.open()
+  },
+  methods:{
+    // open(){
+    //   console.log('123',this.$refs.dialog_ref)
+    // },
+    // 确认关闭弹框
+    handleClose(done) {
+      this.$confirm('确认关闭?')
+        .then(_ => {
+          done();
+        })
+        .catch(_ => {});
+    },
+    getData(){
+      let id = '',name='',host='',status='';
+      console.log('脚本对象',this.obj,this.obj[0],this.obj[1].shi_fou_guo_shen_,this.obj[1].nei_shen_zu_zu_ch)
+      // id = this.obj[0],
+      //获取当前id,查内审阶段数据表  内审名称="" && 内审状态="已完成" 
+    },
+    // 
+    //步骤i条
+    next() {
+      if (this.active++ > 7) {
+        // 节点超过7之后回到初始状态
+        this.active = 2;
+      }
+    },
+      //改变步骤条状态
+    stepStatus(step){
+      switch(step){
+      case 0:
+        this.status ='';
+        break;
+      case 1:
+        this.status = '内审核查'
+        break;
+      }
+    },
+  }
+
+  }
+
+</script>
+
+<style lang="less" scoped>
+.stateDetails{
+  position: fixed;
+      width: 1000px;
+      height: 600px;
+      top: 0;
+      left: 0;
+      right: 0;
+      bottom: 0;
+      z-index: 100;
+      background-color: white;
+      border: 2px solid rebeccapurple;
+      .stepsContent{
+        width: 100%;
+        height: calc(100% - 20px);
+        margin: 10px 0px;
+
+      }
+
+}
+
+</style>

+ 249 - 0
src/views/system/jbdScan/goods/sampleTag.vue

@@ -0,0 +1,249 @@
+<template>
+  <div class="bg">
+    <el-dialog 
+      width="21cm"
+      height="10cm" 
+       :modal-append-to-body='false' title="样品标签" :visible.sync="scanVisible">
+      <!-- 表单是否显示 -->
+      <div style="height:500px">
+          <div ref="qrcode" id="box">
+          <vue-easy-print tableShow ref="easyPrint"
+            :onePageRow="onePageRow"
+          >
+            <div v-for="(item1, index1) in list" :key="index1"  style="display: inline-block" >
+              <div v-for="(item2, index2) in parseInt(item1.num)" :key="index2" 
+              style="display: inline-block"
+              ><!-- style="page-break-after:always" -->
+               <div class="All">
+                <div class="tagBox">
+                  <div class="lh">
+                    <div>样本名称:</div>
+                    <div>{{ item1.name }}</div>
+                  </div>
+                  <div class="la">
+                    <div class="lh">
+                      <div>样本编号:</div>
+                      <div>{{ item1.serial }}</div>
+                    </div>
+                    <div class="lh" style="margin-left: 5px">
+                      <div>收样时间:</div>
+                      <div></div>
+                    </div>
+                  </div>
+                  <div class="lh">
+                    <div>样品类型:</div>
+                    <div>{{ item1.type }}</div>
+                  </div>
+                  <div class="lh">
+                    <div>存储条件:</div>
+                    <div>{{ item1.condition }}</div>
+                  </div>
+
+                  <div class="lh">
+                    <div>流转状态:</div>
+                    <div>▢待检,▢已检,▢留样</div>
+                  </div>
+                  <div class="lh">
+                    <div>样品数量:</div>
+                    <div>{{ index2 + 1 }}/{{ item1.num }}支</div>
+                  </div>
+                  <div class="ewm">
+                    <vue-barcode :value="item1.serial" :width="1" :height="15" ></vue-barcode>
+                  </div>
+
+                  <!-- <div
+                    style="page-break-after: always; display: block !important;height: 40px"
+                  ></div> -->
+
+
+                </div>
+               </div>
+              </div>
+            </div>
+          </vue-easy-print>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <!-- <el-button @click="dialogVisible = false">取 消</el-button> -->
+        <el-button type="primary" @click="printDemo">打印标签</el-button>
+      </span>
+    </el-dialog>
+
+
+  </div>
+</template>
+
+<script>
+import VueBarcode from 'vue-barcode';
+import vueEasyPrint from "vue-easy-print";
+import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js';
+
+export default {
+  components: {
+    VueBarcode,
+    vueEasyPrint,
+  },
+  props: {
+    obj: {
+      default: [],
+      type: Array
+    },
+    onePageRow:{
+      type:Number,
+      default:3
+    },
+    blankLines:{
+      type:Boolean,
+      default:true
+    },
+    scanVisible:{
+      type:Boolean,
+      default: false
+    }
+  },
+  data() {
+    return {
+      value: '',
+      id: '',
+      list: [{
+        name: 5,
+        serial: 5,
+        type: 5,
+        num: 5,
+        condition: 5
+      }],
+      visible: true
+    }
+  },
+  watch: {
+    obj() {
+      this.getInit()
+      // console.log(this.obj)
+    }
+  },
+  created() {
+    this.getInit()
+  },
+  methods: {
+    printDemo() {
+      this.$refs.easyPrint.print()
+    },
+    getInit() {
+      var idStr = '';
+      this.obj.forEach(item=>{
+        idStr += item + ','
+      })
+      idStr = idStr.substring(0,idStr.length-1);
+      console.log(idStr)
+      this.getLook(idStr)
+    },
+    getLook(id) {
+      console.log(id)
+      let sql = `select * from t_lhypb where find_in_set(parent_id_,'${id}')`
+      console.log(sql)
+      repostCurd("sql", sql).then(res => {
+        if (res.state === 200) {
+          const data = res.variables.data
+          let list = []
+          data.forEach(item => {
+            if (item.yang_pin_lei_xing != '' && parseInt(item.shu_liang_) > 0) {
+              let o = {
+                name: item.yang_pin_ming_che,
+                serial: item.yang_pin_bian_hao,
+                type: item.yang_pin_lei_xing,
+                num: item.shu_liang_,
+                condition: item.yang_ben_yun_shu_
+              }
+              list.push(o)
+            }
+            if (item.yang_pin_lei_er_ != '' && parseInt(item.shu_liang_er_) > 0) {
+              let o = {
+                name: item.yang_pin_ming_che,
+                serial: item.yang_pin_bian_hao,
+                type: item.yang_pin_lei_er_,
+                num: item.shu_liang_er_,
+                condition: item.yang_pin_yun_shu_
+              }
+              list.push(o)
+            }
+            if (item.yang_pin_lei_san_ != '' && parseInt(item.shu_liang_san_) > 0) {
+              let o = {
+                name: item.yang_pin_ming_che,
+                serial: item.yang_pin_bian_hao,
+                type: item.yang_pin_lei_san_,
+                num: item.shu_liang_san_,
+                condition: item.yang_pin_yun_san
+              }
+              list.push(o)
+            }
+            if (item.yang_pin_lei_si_ != '' && parseInt(item.shu_liang_si_) > 0) {
+              let o = {
+                name: item.yang_pin_ming_che,
+                serial: item.yang_pin_bian_hao,
+                type: item.yang_pin_lei_si_,
+                num: item.shu_liang_si_,
+                condition: item.yang_pin_yun_si_
+              }
+              list.push(o)
+            }
+
+          })
+          this.list = list
+
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.bg {
+  // height: auto;
+}
+
+.tagBox {
+  width: 240px;   // 300  240
+  height: 140px;  // 180  150
+  position: relative;
+  border: 1px solid #000000;
+  padding: 2px;
+  display: inline-block;
+  // justify-content: space-around;
+  // flex-direction: column;
+  margin: 10px 5px;
+  border-radius: 4px;
+  background-color: #fff;
+}
+.ewm{
+
+}
+/*
+.tagBox {
+  width: 177.5px;   // 300  240
+  height: 106.5px;  // 180  150
+  position: relative;
+  border: 1px solid #000000;
+  padding: 20px;
+  display: flex;
+  justify-content: space-around;
+  flex-direction: column;
+  margin: 20px auto;
+  border-radius: 15px;
+  background-color: #fff;
+}
+*/
+
+.la {
+  display: flex;
+  align-items: center;
+}
+
+.lh {
+  // line-height: auto;
+  font-size: 4px;  //16
+  display: flex;
+  align-items: center;
+
+}
+</style>

+ 1 - 0
src/views/system/jbdScan/js/manualConfirmationJS.js

@@ -292,6 +292,7 @@ export default {
                 rwzb["zhan_shi_biao_wai"] = mjwtsqbAllResult[i].ye_mian_zong_zhua
                 rwzb["zhuang_tai_"] = "任务待分配"                       //	状态
                 rwzb["gong_xian_zhi_"] = mjypbList[i].yang_pin_lei_xin			// 供限值
+                rwzb["yang_pin_bei_zhu_"] = mjypbList[i].bei_zhu_			// 样品备注
                 rwb.push(rwzb)
                 // let str = mjypbList[i].jian_ce_xiang_mu2.split(",")
                 // for (var p in str) {

+ 1 - 0
src/views/system/jbdScan/js/sampleConfirmationJS.js

@@ -274,6 +274,7 @@ export default {
                 rwzb["zhan_shi_biao_wai"] = mjwtsqbAllResult[i].ye_mian_zong_zhua
                 rwzb["zhuang_tai_"] = "任务待分配"                       //	状态
                 rwzb["gong_xian_zhi_"] = mjypbList[i].yang_pin_lei_xin			// 供限值
+                rwzb["yang_pin_bei_zhu_"] = mjypbList[i].bei_zhu_			// 样品备注
                 rwb.push(rwzb)
                 // let str = mjypbList[i].jian_ce_xiang_mu2.split(",")
                 // for (var p in str) {

+ 5 - 1
src/views/system/jbdScan/scan.vue

@@ -22,9 +22,13 @@ import caigourukudan from './goods/caigourukudan'
 import chnangguirukudan from './goods/chnangguirukudan'
 import lingliaodan from './goods/lingliaodan'
 import fenzhuangtag from './goods/fenzhuangtag'
+import stateDetails from '../forget/stateDetails'
+import sampleTag from './goods/sampleTag'
+
 
 export default {
-  components: { facility,material,sample,sampleConfirmation,manualConfirmation,tag,jishutag,caigourukudan,chnangguirukudan,lingliaodan,fenzhuangtag},
+  components: { facility,material,sample,sampleConfirmation,manualConfirmation,tag,jishutag,caigourukudan,chnangguirukudan,lingliaodan,fenzhuangtag,sampleTag,stateDetails},
+
   props:{
     currentScan:String,
     scanVisible:Boolean,