From b34c4bfb96b9517ca489982e94abf66e3d7c4b66 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 17 三月 2025 11:14:32 +0800
Subject: [PATCH] 检验任务代码迁移
---
src/components/Table/lims-table.vue | 280 ++
src/utils/thread/worker0.js | 154 +
src/api/cnas/resourceDemand/device.js | 45
src/views/standard/standardLibrary/index.vue | 1024 +++++++++---
src/views/business/inspectionTask/Inspection.vue | 1128 +++++--------
src/api/system/dict/type.js | 8
src/utils/thread/worker.js | 2069 +++++++++++++++++++++++++
src/router/index.js | 25
src/views/business/inspectionTask/index.vue | 62
9 files changed, 3,747 insertions(+), 1,048 deletions(-)
diff --git a/src/api/cnas/resourceDemand/device.js b/src/api/cnas/resourceDemand/device.js
index 659d384..dc23dd9 100644
--- a/src/api/cnas/resourceDemand/device.js
+++ b/src/api/cnas/resourceDemand/device.js
@@ -65,6 +65,51 @@
});
}
+// 娓╁害寰幆鏁伴噰
+export function temDataAcquisition(data) {
+ return request({
+ url: "/deviceScope/temDataAcquisition",
+ method: "post",
+ data: data,
+ });
+}
+
+// 娓╁害寰幆鏁伴噰鎬讳綋
+export function temDataAcquisition2(data) {
+ return request({
+ url: "/deviceScope/temDataAcquisition2",
+ method: "post",
+ data: data,
+ });
+}
+
+// 鍒ゆ柇璇ヨ澶囨槸鍚﹀彲浠ユ暟閲�
+export function determineWhetherToCollectData(data) {
+ return request({
+ url: "/deviceScope/determineWhetherToCollectData",
+ method: "get",
+ params: data,
+ });
+}
+
+// 鏁伴噰-鏁版嵁閲囬泦
+export function dataCollection(data) {
+ return request({
+ url: "/deviceScope/dataCollection",
+ method: "get",
+ params: data,
+ });
+}
+
+// 閫氳繃椤圭洰鑾峰彇璁惧鍒楄〃
+export function selectDeviceByCategory(data) {
+ return request({
+ url: "/deviceScope/selectDeviceByCategory",
+ method: "get",
+ params: data,
+ });
+}
+
// 缁存姢鏁伴噰閰嶇疆
export function numberCollect(data) {
return request({
diff --git a/src/api/system/dict/type.js b/src/api/system/dict/type.js
index a0254ba..96b27a2 100644
--- a/src/api/system/dict/type.js
+++ b/src/api/system/dict/type.js
@@ -17,6 +17,14 @@
})
}
+// 鏍规嵁瀛楀吀鍚嶇О鏌ヨ瀛楀吀鏁版嵁
+export function selectDictDataByName(dictName) {
+ return request({
+ url: '/system/dict/type/selectDictDataByName/' + dictName,
+ method: 'get'
+ })
+}
+
// 鏂板瀛楀吀绫诲瀷
export function addType(data) {
return request({
diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index 74628ad..5be37a4 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -1,31 +1,85 @@
<template>
<div>
<!-- 琛ㄦ牸 -->
- <el-table ref="multipleTable" v-loading="tableLoading" element-loading-text="鍔犺浇涓�..."
- element-loading-spinner="el-icon-loading" :border="border" :data="tableData"
- :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" :height="height"
- :highlight-current-row="highlightCurrentRow" :row-class-name="rowClassName" :row-style="rowStyle"
- :row-key="rowKey" :span-method="spanMethod" :stripe="stripe" style="width: 100%" tooltip-effect="dark"
- @row-click="rowClick" @current-change="currentChange" @selection-change="handleSelectionChange"
- class="lims-table">
- <el-table-column align="center" type="selection" width="55" v-if="isSelection" />
- <el-table-column align="center" label="搴忓彿" type="index" width="60" :index="indexMethod" />
+ <el-table
+ ref="multipleTable"
+ v-loading="tableLoading"
+ element-loading-text="鍔犺浇涓�..."
+ element-loading-spinner="el-icon-loading"
+ :border="border"
+ :data="tableData"
+ :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"
+ :height="height"
+ :highlight-current-row="highlightCurrentRow"
+ :row-class-name="rowClassName"
+ :row-style="rowStyle"
+ :row-key="rowKey"
+ :span-method="spanMethod"
+ :stripe="stripe"
+ style="width: 100%"
+ tooltip-effect="dark"
+ @row-click="rowClick"
+ @current-change="currentChange"
+ @selection-change="handleSelectionChange"
+ class="lims-table"
+ >
+ <el-table-column
+ align="center"
+ type="selection"
+ width="55"
+ v-if="isSelection"
+ />
+ <el-table-column
+ align="center"
+ label="搴忓彿"
+ type="index"
+ width="60"
+ :index="indexMethod"
+ />
- <el-table-column v-for="(item, index) in column" :key="index" :column-key="item.columnKey"
- :filter-method="item.filterHandler" :filter-multiple="item.filterMultiple" :filtered-value="item.filteredValue"
- :filters="item.filters" :fixed="item.fixed" :label="item.label" :min-width="item.minWidth" :prop="item.prop"
- :show-overflow-tooltip="item.dataType === 'action' || item.dataType === 'slot' ? false : true
- " :sortable="item.sortable ? true : false" :type="item.type" align="center"
- :width="item.dataType == 'action' ? btnWidth : item.width">
+ <el-table-column
+ v-for="(item, index) in column"
+ :key="index"
+ :column-key="item.columnKey"
+ :filter-method="item.filterHandler"
+ :filter-multiple="item.filterMultiple"
+ :filtered-value="item.filteredValue"
+ :filters="item.filters"
+ :fixed="item.fixed"
+ :label="item.label"
+ :min-width="item.minWidth"
+ :prop="item.prop"
+ :show-overflow-tooltip="
+ item.dataType === 'action' || item.dataType === 'slot' ? false : true
+ "
+ :sortable="item.sortable ? true : false"
+ :type="item.type"
+ align="center"
+ :width="item.dataType == 'action' ? btnWidth : item.width"
+ >
<!-- <div class="123" v-if="item.type == ''"> -->
- <template v-if="item.hasOwnProperty('colunmTemplate')" :slot="item.colunmTemplate" slot-scope="scope">
- <slot v-if="item.theadSlot" :index="index" :name="item.theadSlot" :row="scope.row" />
+ <template
+ v-if="item.hasOwnProperty('colunmTemplate')"
+ :slot="item.colunmTemplate"
+ slot-scope="scope"
+ >
+ <slot
+ v-if="item.theadSlot"
+ :index="index"
+ :name="item.theadSlot"
+ :row="scope.row"
+ />
</template>
<template slot-scope="scope">
<!-- 鎻掓Ы -->
<div v-if="item.dataType == 'slot'">
- <slot v-if="item.slot" :index="scope.$index" :name="item.slot" :row="scope.row" />
+ <slot
+ v-if="item.slot"
+ :index="scope.$index"
+ :name="item.slot"
+ :row="scope.row"
+ />
</div>
<!-- 杩涘害鏉� -->
<div v-else-if="item.dataType == 'progress'">
@@ -33,73 +87,141 @@
</div>
<!-- 鍥剧墖 -->
<div v-else-if="item.dataType == 'image'">
- <img :src="javaApi + '/img/' + scope.row[item.prop]" alt=""
- style="width: 40px; height: 40px; margin-top: 10px" />
+ <img
+ :src="javaApi + '/img/' + scope.row[item.prop]"
+ alt=""
+ style="width: 40px; height: 40px; margin-top: 10px"
+ />
</div>
<!-- tag -->
<div v-else-if="item.dataType == 'tag'">
- <el-tag v-if="
- typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
- 'string'
- " :title="scope.row[item.prop] | formatters(item.formatData)"
- :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] |
- formatters(item.formatData) }}</el-tag>
- <el-tag v-for="(tag, index) in dataTypeFn(
- scope.row[item.prop],
- item.formatData
- )" v-else-if="
- typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
- 'object'
- " :key="index" :title="scope.row[item.prop] | formatters(item.formatData)"
- :type="formatType(tag, item.formatType)">{{
+ <el-tag
+ v-if="
+ typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
+ 'string'
+ "
+ :title="scope.row[item.prop] | formatters(item.formatData)"
+ :type="formatType(scope.row[item.prop], item.formatType)"
+ >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag
+ >
+ <el-tag
+ v-for="(tag, index) in dataTypeFn(
+ scope.row[item.prop],
+ item.formatData
+ )"
+ v-else-if="
+ typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
+ 'object'
+ "
+ :key="index"
+ :title="scope.row[item.prop] | formatters(item.formatData)"
+ :type="formatType(tag, item.formatType)"
+ >{{
item.tagGroup
? tag[item.tagGroup.label]
? tag[item.tagGroup.label]
: tag
: tag
- }}</el-tag>
- <el-tag v-else :title="scope.row[item.prop] | formatters(item.formatData)"
- :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] |
- formatters(item.formatData) }}</el-tag>
+ }}</el-tag
+ >
+ <el-tag
+ v-else
+ :title="scope.row[item.prop] | formatters(item.formatData)"
+ :type="formatType(scope.row[item.prop], item.formatType)"
+ >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag
+ >
</div>
<!-- 鎸夐挳 -->
- <div v-else-if="item.dataType == 'action'" :style="`width:${getWidth(item.operation, scope.row)}`">
+ <div
+ v-else-if="item.dataType == 'action'"
+ :style="`width:${getWidth(item.operation, scope.row)}`"
+ >
<template v-for="(o, key) in item.operation">
- <el-button v-show="o.type != 'upload'" size="mini" v-if="o.showHide ? o.showHide(scope.row) : true"
- :disabled="o.disabled ? o.disabled(scope.row) : false" :icon="iconFn(o)" :plain="o.plain"
- :style="{ color: o.name === '鍒犻櫎' ? '#f56c6c' : o.color }" :type="o.type | typeFn(scope.row)"
- @click="o.clickFun(scope.row)" :key="key">
+ <el-button
+ v-show="o.type != 'upload'"
+ size="mini"
+ v-if="o.showHide ? o.showHide(scope.row) : true"
+ :disabled="o.disabled ? o.disabled(scope.row) : false"
+ :icon="iconFn(o)"
+ :plain="o.plain"
+ :style="{ color: o.name === '鍒犻櫎' ? '#f56c6c' : o.color }"
+ :type="o.type | typeFn(scope.row)"
+ @click="o.clickFun(scope.row)"
+ :key="key"
+ >
{{ o.name }}
</el-button>
- <el-upload :action="javaApi + o.url" size="mini" ref="upload" :multiple="o.multiple ? o.multiple : false"
- :disabled="o.disabled ? o.disabled(scope.row) : false" :accept="o.accept
- ? o.accept
- : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
- " v-if="o.type == 'upload' && o.url" style="display: inline-block; width: 50px"
- :data="o.data ? o.data(scope.row) : {}" :before-upload="o.beforeUpload ? o.beforeUpload(scope.row) : () => true
- " v-show="o.showHide ? o.showHide(scope.row) : true" :headers="uploadHeader" :on-error="onError"
- :on-exceed="onExceed" :on-success="handleSuccessUp" :show-file-list="false" :key="key">
- <el-button :size="o.size ? o.size : 'small'" type="text"
- :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button>
+ <el-upload
+ :action="javaApi + o.url"
+ size="mini"
+ ref="upload"
+ :multiple="o.multiple ? o.multiple : false"
+ :disabled="o.disabled ? o.disabled(scope.row) : false"
+ :accept="
+ o.accept
+ ? o.accept
+ : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
+ "
+ v-if="o.type == 'upload' && o.url"
+ style="display: inline-block; width: 50px"
+ :data="o.data ? o.data(scope.row) : {}"
+ :before-upload="
+ o.beforeUpload ? o.beforeUpload(scope.row) : () => true
+ "
+ v-show="o.showHide ? o.showHide(scope.row) : true"
+ :headers="uploadHeader"
+ :on-error="onError"
+ :on-exceed="onExceed"
+ :on-success="handleSuccessUp"
+ :show-file-list="false"
+ :key="key"
+ >
+ <el-button
+ :size="o.size ? o.size : 'small'"
+ type="text"
+ :disabled="o.disabled ? o.disabled(scope.row) : false"
+ >{{ o.name }}</el-button
+ >
</el-upload>
- <el-upload action="#" :on-change="(file, fileList) => o.clickFun(scope.row, file, fileList)
- " :multiple="o.multiple ? o.multiple : false" :limit="o.limit ? o.limit : 1"
- :disabled="o.disabled ? o.disabled(scope.row) : false" :accept="o.accept
- ? o.accept
- : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
- " v-if="o.type == 'upload' && !o.url" style="display: inline-block; width: 50px"
- v-show="o.showHide ? o.showHide(scope.row) : true" :auto-upload="false" :on-exceed="onExceed"
- :show-file-list="false" :key="key">
- <el-button :size="o.size ? o.size : 'small'" type="text"
- :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button>
+ <el-upload
+ action="#"
+ :on-change="
+ (file, fileList) => o.clickFun(scope.row, file, fileList)
+ "
+ :multiple="o.multiple ? o.multiple : false"
+ :limit="o.limit ? o.limit : 1"
+ :disabled="o.disabled ? o.disabled(scope.row) : false"
+ :accept="
+ o.accept
+ ? o.accept
+ : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
+ "
+ v-if="o.type == 'upload' && !o.url"
+ style="display: inline-block; width: 50px"
+ v-show="o.showHide ? o.showHide(scope.row) : true"
+ :auto-upload="false"
+ :on-exceed="onExceed"
+ :show-file-list="false"
+ :key="key"
+ >
+ <el-button
+ :size="o.size ? o.size : 'small'"
+ type="text"
+ :disabled="o.disabled ? o.disabled(scope.row) : false"
+ >{{ o.name }}</el-button
+ >
</el-upload>
</template>
</div>
<!-- 鍙偣鍑荤殑鏂囧瓧 -->
- <div v-else-if="item.dataType == 'link'" class="cell" style="width: 100%"
- @click="goLink(scope.row, item.linkEvent)">
+ <div
+ v-else-if="item.dataType == 'link'"
+ class="cell"
+ style="width: 100%"
+ @click="goLink(scope.row, item.linkEvent)"
+ >
<span class="link" v-if="!item.formatData">
{{ scope.row[item.prop] }}
</span>
@@ -114,8 +236,16 @@
</template>
</el-table-column>
</el-table>
- <pagination v-if="page" v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current"
- :limit.sync="page.size" @pagination="pagination" style="background-color: #fff" />
+ <pagination
+ v-if="page"
+ v-show="page.total > 0"
+ :total="page.total"
+ :layout="page.layout"
+ :page.sync="page.current"
+ :limit.sync="page.size"
+ @pagination="pagination"
+ style="background-color: #fff"
+ />
</div>
</template>
@@ -204,19 +334,19 @@
handleSelectionChange: {
type: Function,
default: () => {
- return () => { };
+ return () => {};
},
},
rowClick: {
type: Function,
default: () => {
- return () => { };
+ return () => {};
},
},
currentChange: {
type: Function,
default: () => {
- return () => { };
+ return () => {};
},
},
border: {
@@ -245,7 +375,7 @@
},
rowClassName: {
type: Function,
- default: () => { },
+ default: () => {},
},
rowStyle: {
type: Function,
@@ -459,11 +589,11 @@
</script>
<style scoped>
-.el-table>>>.el-table__empty-text {
+.el-table >>> .el-table__empty-text {
text-align: center;
}
->>>.cell {
+>>> .cell {
padding: 0 !important;
}
@@ -480,8 +610,8 @@
cursor: pointer;
}
->>>.el-table__body-wrapper::-webkit-scrollbar {
- height: 14px;
+>>> .el-table__body-wrapper::-webkit-scrollbar {
+ height: 6px;
/* 璁剧疆婊氬姩鏉″搴� */
}
</style>
diff --git a/src/router/index.js b/src/router/index.js
index b9675e1..b9dde1e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -93,7 +93,7 @@
// 鍔ㄦ�佽矾鐢憋紝鍩轰簬鐢ㄦ埛鏉冮檺鍔ㄦ�佸幓鍔犺浇
export const dynamicRoutes = [
{
- // 涓嬪崟椤甸潰
+ // 妫�楠屼笅鍗曢〉闈�
path: '/inspectionOrder',
component: Layout,
hidden: true,
@@ -116,6 +116,29 @@
]
},
{
+ // 妫�楠屼换鍔¢〉闈�
+ path: '/inspectionTask',
+ component: Layout,
+ hidden: true,
+ permissions: ['business:inspection'],
+ children: [
+ {
+ // 浠诲姟妫�楠岄〉闈�
+ path: 'inspection',
+ component: () => import('@/views/business/inspectionTask/Inspection'),
+ name: 'inspection',
+ meta: { title: '濮旀墭鍗曟楠�', activeMenu: '/business/inspectionTask' }
+ },
+ // {
+ // // 鏌ョ湅濮旀墭鍗曡鎯呴〉闈�
+ // path: 'showDetails',
+ // component: () => import('@/views/business/inspectionOrder/add'),
+ // name: 'showDetails',
+ // meta: { title: '濮旀墭鍗曡鎯�', activeMenu: '/business/inspectionOrder' }
+ // }
+ ]
+ },
+ {
// 鐢ㄦ埛绠$悊
path: "/system/user-auth",
component: Layout,
diff --git a/src/utils/thread/worker.js b/src/utils/thread/worker.js
new file mode 100644
index 0000000..27bb366
--- /dev/null
+++ b/src/utils/thread/worker.js
@@ -0,0 +1,2069 @@
+// 澶氱嚎绋嬮噷闈㈤渶瑕佷繚瀛樼殑鏁版嵁
+'use strict';//涓簀s鑴氭湰寮�鍚弗鏍兼ā寮�
+let code = ''
+// 琛ㄦ牸鏁版嵁锛堟覆鏌擄級
+let tableList = null
+// 鏂规硶鍒楄〃
+let excelMethodList = []
+// excel鍧愭爣姣旇緝鍒楄〃
+let comparisonList = []
+// 褰撳墠鏍峰搧淇℃伅
+let currentSample = {}
+// 濂楃
+let bushing = ''
+// 澶氱嚎绋嬩紶閫掑埌涓荤嚎绋嬬殑鏁版嵁
+let result = {
+ method:'',
+ value:null
+}
+
+let modelType = ''
+
+// 淇濆瓨鏃朵紶鍒板悗绔弬鏁�
+let param = null
+// 褰撳墠鐨勬ā鏉�
+let currentTable = ''
+// 浼樺寲鏁伴噰杈冨鏁版嵁鏃�-璁板綍鏈�鍚庝竴涓楠岄」鐨刬d
+let getDataTypeId = null
+//褰撳墠妫�楠岄」
+let currentInsItem = null
+// 鎺ユ敹鍒颁富绾跨▼澶勭悊閫昏緫鐨勬秷鎭�
+self.onmessage = function(event) {
+ // 淇濆瓨涓荤嚎绋嬩紶杩囨潵鐨勫��
+ const data = JSON.parse(event.data);
+ if(currentTable!=data.currentTable){
+ // 妫�楠屾ā鏉挎敼鍙樺悗闇�瑕佸埛鏂拌〃鏍�
+ tableList = data.tableList;
+ }
+ currentTable = data.currentTable;
+ if(data.type&&data.type=='saveData'){
+ // 鏇存柊琛ㄦ牸鏁版嵁鍜屼紶閫掑埌鍚庣鐨勫弬鏁�
+ tableList = data.tableList;
+ param = data.param;
+ return
+ }
+ if(data.bushing&&(data.bushing!=bushing)&&data.type=='saveData'){
+ // 鏇存柊琛ㄦ牸鏁版嵁銆佷紶閫掑埌鍚庣鐨勫弬鏁板拰濂楃鏁版嵁
+ tableList = data.tableList;
+ param = data.param;
+ bushing = data.bushing;
+ return
+ }
+ modelType = data.modelType
+ code = data.code;
+ if(data.getDataTypeId){
+ // 璁板綍 浼樺寲鏁伴噰杈冨鏁版嵁鏃�-璁板綍鏈�鍚庝竴涓楠岄」鐨刬d
+ getDataTypeId = data.getDataTypeId
+ }else{
+ getDataTypeId = null
+ }
+ if(tableList){
+ // 濡傛灉琛ㄦ牸鏁版嵁瀛樺湪锛屽垯鏇存柊褰撳墠淇敼妫�楠岄」鐨勮〃鏍兼暟鎹�
+ let str = code.split('-')
+ let r = str[1]
+ let c = str[2]
+ tableList[0].arr.forEach((item,index)=>{
+ item.forEach((m,i)=>{
+ if(m.c==c&&m.r==r){
+ tableList[0].arr[index] = data.tableList[0].arr[index]
+ }
+ })
+ })
+ }else{
+ // 濡傛灉鍒濆鍖栬〃鏍兼暟鎹笉瀛樺湪锛岀洿鎺ヨ祴鍊�
+ tableList = data.tableList;
+ }
+ if(param){
+ // 濡傛灉浼犻�掑埌鍚庣鐨勫弬鏁板瓨鍦紝鍒欐洿鏂板綋鍓嶄慨鏀规楠岄」鐨勪紶閫掑埌鍚庣鐨勫弬鏁�
+ let str = code.split('-')
+ let pId = str[3]
+ param[pId] = data.param[pId]
+ }else{
+ // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
+ param = data.param;
+ }
+ if(data.currentInsItem){
+ currentInsItem = data.currentInsItem
+ }
+ // 鏇存柊鏂规硶鍒楄〃銆佸潗鏍囨瘮杈冨垪琛ㄣ�佸綋鍓嶆牱鍝佷俊鎭�侀」鐩�
+ excelMethodList = JSON.parse(JSON.stringify(data.excelMethodList));
+ comparisonList = JSON.parse(JSON.stringify(data.comparisonList));
+ currentSample = JSON.parse(JSON.stringify(data.currentSample));
+ // 鎵ц璁$畻鏂规硶
+ changeInput('', code);
+};
+
+/**
+ *
+ * @returns 鑾峰彇chrome娴忚鍣ㄧ増鏈�
+ */
+function getChromeVersion(){
+ var ua = navigator.userAgent;
+ var match = ua.match(/Chrome\/(\d+)/);
+ if (match && match[1]) {
+ return parseInt(match[1], 10);
+ }
+ return -1
+}
+
+/**
+ * 鑷畾涔塐bject.values鏂规硶锛岃В鍐充綆鐗堟湰娴忚鍣ㄦ病鏈夎API闂
+ * @param {*} obj
+ * @returns
+ */
+function customValues(obj){
+ return Object.keys(obj).map(function(key){
+ return obj[key];
+ });
+}
+
+function changeInput(m, code){
+ let str = code.split('-')
+ let r = str[1]//褰撳墠琛�
+ let c = str[2]//褰撳墠鍒�
+ let id = str[0]
+ let pId = str[3]//褰撳墠妫�楠岄」id锛宲aram[pId]涓哄綋鍓嶆楠岄」鐨勬墍鏈夊�硷紝鍖呭惈锛氳繃绋嬪�糹nsValue銆佽绠楀�糲omValue銆佽澶囩紪鐮乪quipValue銆佽澶囧悕绉癳quipName銆佹渶缁堝�紃esValue銆佺粨璁篿nsResult
+ var list = []//涓�涓弻灞傛暟缁勶紝閲岄潰淇濆瓨鏈夊綋鍓嶉〉闈㈡覆鏌撶殑鎵�鏈夋暟鎹�
+ // 璧嬪�煎綋鍓嶆ā鏉跨殑琛ㄦ牸鏁版嵁
+ for (let a in tableList) {
+ if (tableList[a].templateId == id) {
+ list = tableList[a].arr
+ break
+ }
+ }
+ let isToExponential = ''//鏄惁涓虹瀛﹁鏁版硶
+ let list2 = [] //涓�涓暟缁勶紝閲岄潰淇濆瓨鏈夊綋鍓嶆楠岄」鐨勬墍鏈夊弬鏁板��
+ let isPoint = '' //鏄惁涓哄皬鏁扮偣
+ // 寰幆鎵�鏈塭xcel鏂规硶锛屾壘鍒板綋鍓嶈銆佸垪鐨勬楠岄」锛屽鏋滄鍗曞厓鏍硷紙r,c锛夋槸鏌愪釜excel鏂规硶閲岄潰鐨勫弬鏁帮紝鍒欐墽琛屾鏂规硶
+ excelMethodList.forEach(item => {
+ // item.valueList 鏄綋鍓峞xcel鏂规硶鐨勫弬鏁板垪琛紝鎵惧埌褰撳墠濉叆鐨勫�兼槸鍚︽槸鍙傛暟
+ if (item.valueList&&item.valueList.length>0&&item.valueList.find(m => m.r == r && m.c == c)) {
+ // 濡傛灉鏄紝鍒欏畾涔変竴涓弬鏁扮殑瀵硅薄闆嗗悎锛岀敤浜庝繚瀛樺綋鍓峞xcel鏂规硶鍙傛暟鐨勫��
+ var comValue = {}
+ item.valueList.forEach(a => {
+ list.forEach(b => {
+ if (b[0].r == a.r) {
+ b.forEach(c => {
+ if (c.c == a.c) {
+ // 鑾峰彇褰撳墠鍙傛暟鐨凟xecl琛屽潗鏍�(ABCD)绛夌瓑
+ var tableCode = ''
+ for (var d in comparisonList) {
+ if (c.c == comparisonList[d].dictValue) {
+ tableCode = comparisonList[d].dictLabel
+ break
+ }
+ }
+ list2.push(c.v.v)
+ // 缁勮鍙傛暟鐨勫璞¢泦鍚堝苟璧嬪�硷紝鍒楀{A3:12,B4:15}
+ if(getInspectionValueType(item.i)==1&&!isNaN(parseFloat(c.v.v))){
+ // 濡傛灉鏄暟瀛楄緭鍏ユ
+ let n = String(c.v.v)
+ if(n.includes('/')){
+ // 濡傛灉鏄垎鏁帮紝鍒欒祴鍊�
+ comValue[(tableCode + (c.r + 1))] = c.v.v
+ }else{
+ comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v).toFixed(6)
+ }
+ }else{
+ // 濡傛灉鏄枃鏈�佷笅鎷夋绛夌瓑
+ comValue[(tableCode + (c.r + 1))] = c.v.v
+ }
+ }
+ })
+ }
+ })
+ })
+ // 濡傛灉姝xcel鏂规硶鏄粨璁哄垽鏂柟娉曪紝鍒欐墽琛屾鏂规硶
+ if (item.v.ps != undefined && item.v.ps.value == '缁撹') {
+ try {
+ if (currentSample.insProduct.find(m => m.id == item.i)) {
+ // 濡傛灉褰撳墠妫�楠岄」鏄骇鍝佹楠岄」锛屽垯鎵ц姝ゆ柟娉曪紝鎵惧埌姝ゆ楠岄」鐨勮姹傚��
+ let ask = currentSample.insProduct.find(m => m.id == item.i).ask?currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null;
+ const chromeVersion = getChromeVersion()
+ console.log(getChromeVersion())
+ let res = null
+ // 鑾峰彇褰撳墠缁撹鐨勫弬鏁帮紝涔熷氨鏄綋鍓嶆楠岄」鐨勬渶缁堝��
+ if(chromeVersion>0 && chromeVersion>=75){
+ res = Object.values(comValue)[0]
+ }else{
+ res = customValues(comValue)[0]
+ }
+ let comp = []
+ // 鍒ゆ柇褰撳墠缁撹鐨勫弬鏁帮紙褰撳墠妫�楠岄」鐨勬渶缁堝�硷級鏄惁涓虹┖锛屽鏋滀负绌猴紝鍒欑洿鎺ヨ祴鍊�
+ if(res===''||res===null||res===undefined||res==='Infinity'){
+ item.v.v = null
+ list.forEach(a => {
+ if (a[0].r == item.r) {
+ for (let b=0; b<a.length; b++) {
+ if (a[b].c == item.c) {
+ a[b].v.v = null
+ break
+ }
+ }
+ }
+ })
+ }else{
+ // 濡傛灉涓嶄负绌猴紝鍒欏垽鏂綋鍓嶇粨璁哄氨闇�瑕佽繘琛屽垽鏂�
+ //瑕佹眰鍊间负-锛�/锛屸�旓紝鍒欑粨璁鸿缃负涓嶅垽瀹氾紝缁撹璧嬪�间负3
+ if(ask[0]=='-' || ask[0]=='/' || ask[0]=='鈥�'){
+ item.v.v = 3
+ list.forEach(a => {
+ if (a[0].r == item.r) {
+ for (let b=0; b<a.length; b++) {
+ if (a[b].c == item.c) {
+ a[b].v.v = 3
+ break
+ }
+ }
+ }
+ })
+ }else{
+ // 瑕佹眰鍊间笉涓�-锛�/锛屸�旓紝鍒欒繘琛屽垽鏂�
+ if(ask){
+ // 寰幆瑕佹眰鍊煎垪琛紝鍒ゆ柇褰撳墠缁撹鐨勫弬鏁版槸鍚︾鍚堣姹�
+ comp = ask.map((m, i) => {
+ //濡傛灉瑕佹眰鍊间负绾暟瀛楋紝鍦ㄥ紑澶存彃鍏�=
+ if(m!=null && m!=='' && !isNaN(m)){
+ m='='+m
+ }
+ if(m.includes('锝�')) {
+ m = m.replace('锝�', '~')
+ }
+ // 濡傛灉ask鍖呭惈D锛屽垯鐢ㄨ鏍煎瀷鍙锋浛鎹�
+ // if(m.includes('D')) {
+ // m = m.replace('D',modelType.split('-')[1])
+ // }
+ // 瑁呭鐗规湁鐨勫垽鏂柟娉曪紙闇�瑕佺瀛﹁鏁版硶鐨勶級锛岃姹傚�艰繘琛屾浛鎹�
+ if (m.includes('RTS')) {
+ m = m.replace('RTS*', '')
+ }
+ // 濡傛灉瑕佹眰鍊煎寘鍚�=锛屽垯鍒ゆ柇褰撳墠缁撹鐨勫弬鏁版槸鍚︾瓑浜庤姹傚�硷紝
+ // 浠ヤ笅鍒ゆ柇鍩烘湰涓�鑷达紝鍙槸鍒ゆ柇绫诲瀷涓嶄竴鏍凤紝灏变笉鍋氭敞閲婁簡
+ if (m.includes('=')) {
+ // 澶勭悊瑕佹眰鍊�
+ let str = handleFraction(m.split('=')[1])
+ if(typeof res == 'string'&&typeof str == 'string'){
+ // 濡傛灉瑕佹眰鍊煎拰褰撳墠缁撹鐨勫弬鏁伴兘鏄瓧绗︿覆锛屽垯鎵ц
+ if(res.includes('/')){
+ // 濡傛灉缁撹鐨勫弬鏁版槸鍒嗘暟锛屽垯鍒ゆ柇
+ if (m.includes('/')) {
+ // 濡傛灉瑕佹眰鍊兼槸鍒嗘暟锛屽垯鍒ゆ柇
+ return eval(res) == eval(str)
+ } else {
+ // 濡傛灉瑕佹眰鍊间笉鏄垎鏁帮紝鍒欏垽鏂�
+ return handleMoreParam(res,m.split('=')[1],'=')
+ }
+ }else{
+ // 濡傛灉缁撹鐨勫弬鏁颁笉鏄垎鏁帮紝鍒欏垽鏂�
+ //鍒ゆ柇缁撹鍜岃姹傚�兼槸涓嶆槸鏁板瓧
+ if(isNaN(res) || isNaN(str)){
+ return res.trim().replace(/[.,銆傘�侊紱锛�'";?锛熲�滐紝]/g, '') == str.trim().replace(/[.,銆傘�侊紱锛�'";?锛熲�滐紝]/g, '')
+ }else{
+ let resNum = parseFloat(res.trim().replace(/[,銆傘�侊紱锛�'";?锛熲�滐紝]/g, ''));
+ let strNum = parseFloat(str.trim().replace(/[,銆傘�侊紱锛�'";?锛熲�滐紝]/g, ''));
+ return resNum == strNum;
+ }
+ }
+ }else{
+ // 濡傛灉瑕佹眰鍊煎拰褰撳墠缁撹鐨勫弬鏁版湁涓�涓槸鏁板瓧锛屽垯鎵ц
+ return eval(res) == eval(str)
+ }
+ } else if (m.includes('鈮�')) {
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('鈮�')[1])
+ return eval(res) >= eval(str)
+ } else {
+ return handleMoreParam(res,m.split('鈮�')[1],'鈮�')
+ }
+ }else{
+ let str = handleFraction(m.split('鈮�')[1])
+ return eval(res) >= eval(str)
+ }
+ }else if (m.includes('鈮�')) {
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('鈮�')[1])
+ return eval(res) <= eval(str)
+ } else {
+ return handleMoreParam(res,m.split('鈮�')[1],'鈮�')
+ }
+ }else{
+ let str = handleFraction(m.split('鈮�')[1])
+ console.log('str',str);
+ return eval(res) <= eval(str)
+ }
+ }else if (m.includes('<')) {
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('<')[1])
+ return eval(res) < eval(str)
+ } else {
+ return handleMoreParam(res,m.split('<')[1],'<')
+ }
+ }else{
+ let str = handleFraction(m.split('<')[1])
+ console.log('111',m);
+ console.log('***',str);
+ return eval(res) < eval(str)
+ }
+ }else if (m.includes('>')) {
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('>')[1])
+ return eval(res) > eval(str)
+ } else {
+ return handleMoreParam(res,m.split('>')[1],'>')
+ }
+ }else{
+ let str = handleFraction(m.split('>')[1])
+ return eval(res) > eval(str)
+ }
+ }else if (m.includes('~')) {
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let k = m.split('~')
+ return eval(res) >= eval(handleFraction((k[0]))) && eval(res) <= eval(handleFraction(k[1]))
+ } else {
+ return handleMoreParam(res,m,'~')
+ }
+ }else{
+ const regex = /(-?\d*\.?\d+)/;
+ let k = m.split('~')
+ k[0] = k[0].match(regex)[1]
+ k[1] = k[1].match(regex)[1]
+ return eval(res) >= eval(handleFraction((k[0]))) && eval(res) <= eval(handleFraction(k[1]))
+ }
+ }else if(m.includes('-')){
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let k = m.split('-')
+ return eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1]))
+ } else {
+ return handleMoreParam(res,m,'-')
+ }
+ }else{
+ let k = m.split('-')
+ // console.log(k,eval(res),eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1])))
+ return eval(res) >= eval(handleFraction(k[0])) && eval(res) <= eval(handleFraction(k[1]))
+ }
+ }else if(m.includes('卤')){
+ if(modelType.includes('蠁-')) {
+ const regex = /蠁-([\d.]+)/;
+ const found = modelType.match(regex);
+ if(m.indexOf('卤') == 0) {
+ if(found) {
+ m = found[1] + m
+ }
+ }
+ }
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let k = m.split('卤')
+ return eval(res) >= eval((handleFraction(k[0]) - handleFraction(k[1]))) && eval(res) <= eval(Number(handleFraction(k[0])) + Number(handleFraction(k[1])))
+ } else {
+ return handleMoreParam(res,m,'卤')
+ }
+ }else{
+ let k = m.split('卤')
+ if(k[0] != '' && k[0] != null) {
+ // 鍖归厤鏁板��
+ const regex = /(-?\d+\.?\d*)/
+ k[0] = k[0].match(regex)[0]
+ // 鍒ゆ柇鏄惁鍚湁%鐨勬儏鍐�
+ if(k[1].includes('%')) {
+ k[1] =Number(k[0]).toFixed(6) * Number(k[1].match(regex)[0]).toFixed(6) / 100
+ }else{
+ k[1] = k[1].match(regex)[0]
+ }
+ }
+ return eval(res) >= eval((handleFraction(k[0]) - handleFraction(k[1]))) && eval(res) <= eval(Number(handleFraction(k[0])) + Number(handleFraction(k[1])))
+ }
+ }else if(m.includes('锛�')){
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('锛�')[1])
+ return eval(res) > eval(str)
+ } else {
+ return handleMoreParam(res,m.split('锛�')[1],'>')
+ }
+ }else{
+ let str = handleFraction(m.split('锛�')[1])
+ return eval(res) > eval(str)
+ }
+ }else if(m.includes('锛�')){
+ if(typeof res =='string'&&res.includes('/')){
+ if (m.includes('/')) {
+ let str = handleFraction(m.split('锛�')[1])
+ return eval(res) < eval(str)
+ } else {
+ return handleMoreParam(res,m.split('锛�')[1],'<')
+ }
+ }else{
+ let str = handleFraction(m.split('锛�')[1])
+ return eval(res) < eval(str)
+ }
+ }
+ })
+ }
+ // 濡傛灉瑕佹眰鍊肩殑姣忎釜鏉′欢閮界鍚堬紝鍒欑粰缁撹璧嬪�间负1锛屽悎鏍�
+ if (comp.every(m => m)) {
+ item.v.v = 1
+ list.forEach(a => {
+ if (a[0].r == item.r) {
+ for (let b=0; b<a.length; b++) {
+ if (a[b].c == item.c) {
+ a[b].v.v = 1
+ break
+ }
+ }
+ }
+ })
+ }else {
+ // 鍚﹀垯缁欑粨璁鸿祴鍊间负0锛屼笉鍚堟牸
+ item.v.v = 0
+ list.forEach(a => {
+ if (a[0].r == item.r) {
+ for (let b=0; b<a.length; b++) {
+ if (a[b].c == item.c) {
+ a[b].v.v = 0
+ break
+ }
+ }
+ }
+ })
+ }
+ }
+ }
+ let getDataType0 = false
+ // 浼樺寲鏁伴噰杈冨鏁版嵁鏃�-璁板綍鏈�鍚庝竴涓楠岄」鐨刬d锛屽鏋滃綋鍓嶆楠岄」鐨刬d涓庤褰曠殑id鐩稿悓锛屽垯澶氫紶涓�涓弬鏁板埌涓荤嚎绋嬶紝杩涜鏁版嵁淇濆瓨锛屽惁鍒欐暟閲囧氨涓嶈繘琛屼繚瀛�
+ if(item.i==getDataTypeId){
+ getDataType0 = true
+ }
+ // 璧嬪�间紶閫掑埌涓荤嚎绋嬬殑鏁版嵁锛宮ethod锛歴aveInsContext琛ㄧず姝ゆ秷鎭渶瑕佷繚瀛樻暟鎹�
+ console.log("iii---->>>>",item)
+ result = {
+ method:'saveInsContext',
+ value:{
+ tableList,// 琛ㄦ牸鏁版嵁
+ param:getParam(),//浼犵粰鍚庣鐨勫弬鏁�
+ getDataTypeId:getDataType0?getDataTypeId:'',
+ currentInsItemId: item.i
+ }
+ }
+ // 鍙戞秷鎭粰涓荤嚎绋�
+ self.postMessage(JSON.stringify(result))
+ }
+ } catch (error) {
+ console.log('error---', error)
+ }
+
+ } else {
+ // 濡傛灉鏄嚱鏁版柟娉曪紝鍒欐墽琛屾鏂规硶
+ let comResult = ''//鍒濆鍖栬绠楃粨鏋�
+ try {
+ if(getInspectionValueType(item.i)==1){
+ // 濡傛灉妫�楠屽�肩被鍨嬫槸鏁板瓧杈撳叆妗�
+ let tell = currentSample.insProduct.find(m => m.id == item.i).tell?currentSample.insProduct.find(m => m.id == item.i).tell.split('&'):null;
+ // 鏍规嵁杈撳叆鐨勬暟鍊硷紝杩涜璁$畻
+ comResult = compute(item.v.f.replace(/=/g, ' '),comValue, false)
+ let list3 = list2.map(item=>item+'')
+ // 鍒ゆ柇鏄惁涓虹瀛﹁鏁版硶锛屽鏋滀负绉戝璁℃暟娉曪紝鍒欒繘琛岃浆鍖�
+ isToExponential = list3.some(val => val.includes('e+')||val.includes('e-'))
+ // 妫�楠屽�艰浆鍖�
+ let findProduct = currentSample.insProduct.find(i=>i.inspectionItem=='浣撶Н鐢甸樆鐜�')
+ // 鍒ゆ柇妫�楠岄」鏄惁涓轰綋绉數闃荤巼锛屽鏋滀负浣撶Н鐢甸樆鐜囦笖澶т簬100000锛屽垯杩涜杞寲
+ if (findProduct && isToExponential && comResult>=100000) {
+ let num2 = new Big(comResult)
+ comResult = num2.toExponential(1)
+ }
+ }else{
+ // 濡傛灉妫�楠屽�肩被鍨嬫槸鏂囨湰杈撳叆妗嗐�佷笅鎷夋
+ let valueList = [];
+ // 澶勭悊excel鍑芥暟鍙傛暟鍒楄〃
+ item.valueList.forEach(a => {
+ valueList.push({
+ name: `${comparisonList.find(e=>e.dictValue==a.c).dictLabel}${a.r+1}`,
+ value: 0,
+ })
+ })
+ // 缁檈xcel鍑芥暟鍙傛暟璧嬫枃鏈��
+ for (var a in comValue) {
+ valueList.forEach(b => {
+ if (b.name == a) {
+ b.value = comValue[a]
+ }
+ })
+ }
+ // 璁$畻鍏紡锛屽幓鎺塭xcel鍑芥暟鐨勭瓑鍙凤紝骞舵浛鎹㈠弬鏁帮紝鍒楀锛�=A1 鍙樻垚 A1 鍙樻垚 鈥樻枃鏈緭鍏ョ殑鍊尖��
+ let str = item.v.f.replace(/=/g, ' ')
+ valueList.forEach(b => {
+ str = str.replace(b.name, b.value)
+ })
+ // 璁$畻缁撴灉璧嬪��
+ comResult = str
+ }
+ } catch (error) {
+ console.log('error---', error)
+ }
+ try {
+ // 寰幆琛ㄦ牸鏁版嵁锛岀粰琛ㄦ牸鏁版嵁杩涜璧嬪��
+ list.forEach(a => {
+ if (a[0].r == item.r && comResult !== '') {
+ // 鍒ゆ柇褰撳墠琛屾槸鍚︿负褰撳墠妫�楠岄」鎵�鍦ㄨ锛屽鏋滀负褰撳墠琛岋紝鍒欑粰琛ㄦ牸鏁版嵁璧嬪��
+ for (var b in a) {
+ if (a[b].c == item.c) {
+ try{
+ if(comResult==0){
+ // 鍒ゆ柇璁$畻缁撴灉鏄惁涓�0锛屽鏋滀负0锛屽垯缁欒〃鏍兼暟鎹祴鍊间负0
+ a[b].v.v = 0
+ }else if(a[b].v.ct&&a[b].v.ct.fa&&typeof a[b].v.ct.fa == 'string'&&a[b].v.ct.fa.includes('.')){
+ // 鍒ゆ柇褰撳墠鍗曞厓鏍兼槸鍚︿繚鐣欏皬鏁扮偣锛屽鏋滀负淇濈暀灏忔暟鐐癸紝鍒欑粰琛ㄦ牸鏁版嵁璧嬪�间负淇濈暀灏忔暟鐐癸紝杩欎釜鏄牴鎹ā鏉块厤缃皬鏁扮偣鏉ョ殑
+ let num = 0
+ let str = a[b].v.ct.fa.split('.')[1]
+ num = str.length
+ a[b].v.v = comResult?Number(comResult).toFixed(num):comResult
+ }else if(typeof comResult == 'string' && (comResult.includes('e+')|| comResult.includes('e-'))){
+ // 鍒ゆ柇璁$畻缁撴灉鏄惁涓虹瀛﹁鏁版硶锛屽鏋滀负绉戝璁℃暟娉曪紝鍒欑粰琛ㄦ牸鏁版嵁璧嬪�间负绉戝璁℃暟娉�
+ a[b].v.v = comResult
+ }else{
+ // 鍒ゆ柇璁$畻缁撴灉鏄惁涓烘暟瀛楋紝濡傛灉涓烘暟瀛楋紝鍒欑粰琛ㄦ牸鏁版嵁璧嬪�间负鏁板瓧
+ let val = parseFloat(Number(comResult).toFixed(6))
+ a[b].v.v = isNaN(val) ? comResult : val
+ }
+ }catch(error){
+ // 濡傛灉浠ヤ笂鍒ゆ柇閮戒笉鏀寔锛屽垯鐩存帴璧嬪��
+ a[b].v.v = comResult
+ console.log('error---', error)
+ }
+ break
+ }
+ }
+ }
+ })
+ // 濡傛灉姝よ绠楃粨鏋滄墍灞炲崟鍏冩牸锛屽悓鏃朵篃鏄彟涓�涓猠xcel鍑芥暟鐨勫弬鏁帮紝閭d箞灏遍渶瑕侀�掑綊杩涜璁$畻
+ changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //鏀瑰彉鏈�缁堝��
+ } catch (error) {
+ console.log('error---', error)
+ }
+ }
+ }
+ })
+ // 璧嬪�煎绾跨▼浼犺緭鏁版嵁
+ result = {
+ method:'tableList',
+ value:tableList
+ }
+ // 鍙戦�佷富绾跨▼鏁版嵁
+ self.postMessage(JSON.stringify(result))
+ try {
+ // 璧嬪�煎绾跨▼浼犺緭鏁版嵁
+ result = {
+ method:'getCurrentInsProduct',
+ value:pId
+ }
+ // 鍙戦�佷富绾跨▼鏁版嵁
+ self.postMessage(JSON.stringify(result))
+ } catch (error) {
+ console.log('error---', error)
+ }
+}
+/**
+ * 鑾峰彇妫�娴嬪�肩被鍨�
+ *
+ * @param id 妫�娴嬪�肩被鍨嬪搴旂殑id
+ * @returns 杩斿洖妫�娴嬪�肩被鍨�
+ */
+function getInspectionValueType(id) {
+ for (var a in currentSample.insProduct) {
+ if (currentSample.insProduct[a].id == id) {
+ return currentSample.insProduct[a].inspectionValueType
+ }
+ }
+}
+/**
+ * 澶勭悊鍒嗘暟鎴栧甫鏈変箻娉曞拰涔樻柟鐨勫瓧绗︿覆
+ *
+ * @param str 瀛楃涓茬被鍨嬶紝琛ㄧず瑕佸鐞嗙殑鍒嗘暟鎴栦箻鏂硅〃杈惧紡
+ * @returns 杩斿洖涓�涓暟瀛楁垨鍘熷瓧绗︿覆锛屽鏋滃瓧绗︿覆涓烘湁鏁堢殑鍒嗘暟鎴栦箻鏂硅〃杈惧紡锛屽垯杩斿洖璁$畻缁撴灉锛涘惁鍒欒繑鍥炲師瀛楃涓�
+ */
+function handleFraction(str){
+ if(str&&typeof(str)=='string'&&str.includes('/')&&str.includes('*')) {
+ // 鍒ゆ柇鍝釜绗﹀彿鍦ㄥ墠闈�
+ // 濡傛灉/鍦�*鍓嶉潰锛屽垯鍏堣绠楅櫎娉曪紝鍐嶈绠椾箻娉�
+ if(str.indexOf('/') < str.indexOf('*')) {
+ let num1 = str.split('/')[0]
+ let num2 = str.split('/')[1].split('*')[0]
+ let num3 = str.split('/')[1].split('*')[1]
+ return eval(num1/num2)*num3
+ }else {
+ // 濡傛灉*鍦�/鍓嶉潰锛屽垯鍏堣绠椾箻娉曪紝鍐嶈绠楅櫎娉�
+ let num1 = str.split('*')[0]
+ let num2 = str.split('*')[1].split('/')[0]
+ let num3 = str.split('*')[1].split('/')[1]
+ return eval(num1*num2)/num3
+ }
+ }
+ if(str&&typeof(str)=='string'&&str.includes('/')){
+ // 澶勭悊鍒嗘暟
+ return eval(str.split('/')[0]/str.split('/')[1])
+ } else if (str && typeof(str) == 'string' && str.includes('*') && str.includes('^')) {
+ // 璁$畻涔樻柟
+ const num1 = str.split('*')
+ const num2 = num1[1].split('^')
+ let num3 = new Big(num2[0]);
+ let num4 = new Big(num2[1]);
+ let num5 = Math.pow(num3, num4) // 璁$畻娆℃柟
+ return num1[0] * num5 // 鏈�鍚庤绠椾箻娉�
+ } else{
+ return str
+ }
+}
+
+/**
+ * 澶勭悊甯︽湁澶氫釜鍙傛暟鐨勫嚱鏁�
+ *
+ * @param res 瀛楃涓诧紝闇�瑕佽鍒嗗壊骞跺鐞嗙殑瀛楃涓�
+ * @param str 瀛楃涓诧紝涓巖es涓殑姣忎竴椤硅繘琛屾瘮杈冪殑瀛楃涓诧紝鍙兘鏄垎鏁版垨鑰呭甫鏈夋瘮杈冪鍙风殑瀛楃涓�
+ * @param comp 瀛楃涓诧紝琛ㄧず姣旇緝绫诲瀷鐨勫瓧绗︼紙濡� '>'銆�'<'銆�'='銆�'鈮�'銆�'鈮�'銆�'卤'銆�'~'銆�'-'锛�
+ * @returns 杩斿洖甯冨皵鍊硷紝濡傛灉res涓瘡涓�椤归兘婊¤冻涓巗tr鐨勬瘮杈冩潯浠讹紝鍒欒繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse
+ */
+function handleMoreParam(res,str,comp){
+ let arr = res.split('/')
+ let arr0 = arr.every(item=>{
+ switch (comp){
+ case '>':
+ return item > handleFraction(str)
+ case '<':
+ return item < handleFraction(str)
+ case '=':
+ return item == handleFraction(str)
+ case '鈮�':
+ return item >= handleFraction(str)
+ case '鈮�':
+ return item <= handleFraction(str)
+ case '卤':
+ let k = str.split('卤')
+ return item >= eval((handleFraction(k[0]) - handleFraction(k[1]))) && item <= eval(Number(handleFraction(k[0])) + Number(handleFraction(k[1])))
+ case '~':
+ let j = str.split('~')
+ return item >= eval(handleFraction((j[0]))) && item <= eval(handleFraction(j[1]))
+ case '-':
+ let o = str.split('-')
+ return item >= eval(handleFraction(o[0])) && item <= eval(handleFraction(o[1]))
+ }
+ })
+ if(arr0){
+ return true
+ }else{
+ return false
+ }
+ }
+
+/**
+ * 鑾峰彇鍙傛暟
+ *
+ * @returns 杩斿洖澶勭悊鍚庣殑鍙傛暟瀵硅薄
+ */
+function getParam(){
+ tableList[0].arr.forEach(a=>{
+ a.forEach(b=>{
+ // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
+ if(param[b.i]){
+ param[b.i].insValue = []
+ param[b.i].comValue = []
+ param[b.i].equipValue = []
+ param[b.i].equipName = []
+ param[b.i].resValue = null
+ param[b.i].insResult = null
+ }
+ })
+ })
+ console.log('78978');
+ tableList[0].arr.forEach(a => {
+ a.forEach(b=>{
+ // 鏍规嵁琛ㄦ牸鏁版嵁锛岃祴鍊间紶閫掑埌鍚庣鐨勫弬鏁�
+ if (b.v.ps != undefined &&typeof b.v.ps.value =='string'&& b.v.ps.value.includes('妫�楠屽��')) {
+ // 璧嬪�兼楠屽��
+ b.i &&b.v.v&& param[b.i].insValue.push(b)
+ }
+ if (b.v.ps != undefined && b.v.ps.value === '璁$畻鍊�') {
+ // 璧嬪�艰绠楀��
+ if (typeof b.v.v == "number" && isNaN(b.v.v)) {
+ b.v.v = 0;
+ }
+ b.i &&b.v.v&&b.valueList&&b.valueList.length>0&& param[b.i].comValue.push(b)
+ }
+ if (b.v.ps != undefined && b.v.ps.value === '璁惧缂栫爜') {
+ // 璧嬪�艰澶囩紪鐮�
+ b.i &&b.v&& param[b.i].equipValue.push(b)
+ }
+ if (b.v.ps != undefined && b.v.ps.value === '璁惧鍚嶇О') {
+ // 璧嬪�艰澶囧悕绉�
+ b.i &&b.v&& param[b.i].equipName.push(b)
+ }
+ if (b.v.ps != undefined && b.v.ps.value === '鏈�缁堝��') {
+ // 璧嬪�兼渶缁堝�� 鏈夊�煎氨涓嶅湪缁х画璧嬪��
+ if(!(param[b.i].resValue && param[b.i].resValue.v && param[b.i].resValue.v.v)){
+ // 璁$畻鍊� 妫�楠屽憳鍏ㄩ儴杈撳叆0
+ if (typeof b.v.v == "number" && isNaN(b.v.v)) {
+ b.v.v = 0
+ }
+ b.i &&b.v&&b.valueList&&b.valueList.length>0&& (param[b.i].resValue = b)
+ }
+ }
+ if (b.v.ps != undefined && b.v.ps.value === '缁撹') {
+ if(b.i &&(b.v.v||b.v.v===0||b.v.v==='0')){
+ if(b.v.v != '鍚堟牸'&&b.v.v != '涓嶅悎鏍�'){
+ // 璧嬪�肩粨璁�
+ if(param[b.i].insResult == '' || param[b.i].insResult == null || param[b.i].insResult == undefined){
+ param[b.i].insResult = b
+ }
+ }
+ }
+ }
+ })
+ })
+ return param
+}
+
+
+/**
+ * 璁$畻澶氫釜鏁板�肩殑鍜�
+ *
+ * @param val 鏁板�煎瀷鍙傛暟锛屽彲鍙橀暱鍙傛暟鍒楄〃
+ * @returns 杩斿洖鎵�鏈夊弬鏁扮殑鍜岋紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栧弬鏁扮被鍨嬮潪鏁板�煎瀷锛屽垯杩斿洖null
+ */
+function SUM(...val){
+ try {
+ let num = null;
+ if(val!=null&&val!=undefined&&val!='undefined'&&val!='NaN'&&val.length>0){
+ val.forEach(item=>{
+ num+=item;
+ })
+ }
+ return num;
+ } catch (error) {
+ console.log('error---', error)
+ }
+}
+/**
+ * 璁$畻浼犲叆鍙傛暟涓殑鏈�澶у��
+ *
+ * @param ...val 鍙彉鍙傛暟鍒楄〃锛岀敤浜庤绠楁渶澶у�肩殑鏁板�兼垨鍙浆鎹负鏁板�肩殑绫诲瀷
+ * @returns 杩斿洖鏈�澶у�硷紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栦负null/undefined/''锛屽垯杩斿洖null
+ */
+function MAX(...val){
+ try {
+ let max = null;
+ if(val!=null&&val!=undefined&&val!='undefined'&&val!='NaN'&&val.length>0){
+ val = val.filter(item=>item!=null&&item!=='')
+ if(val.length>0){
+ max = Math.max(...val)
+ }else{
+ max = null;
+ }
+ }
+ return max;
+ } catch (error) {
+ console.log('error---', error)
+ }
+}
+/**
+ * 璁$畻浼犲叆鍙傛暟涓殑鏈�灏忓��
+ *
+ * @param val 鍙彉鍙傛暟锛岀敤浜庤绠楁渶灏忓�肩殑鏁板�兼暟缁�
+ * @returns 杩斿洖浼犲叆鍙傛暟涓殑鏈�灏忓�硷紝濡傛灉浼犲叆鍙傛暟涓虹┖鎴栨墍鏈夊�煎潎涓簄ull鎴栫┖瀛楃涓诧紝鍒欒繑鍥瀗ull
+ */
+function MIN(...val){
+ try {
+ let min = null;
+ if(val!=null&&val!=undefined&&val!='undefined'&&val!='NaN'&&val.length>0){
+ val = val.filter(item=>item!=null&&item!=='')
+ if(val.length>0){
+ min = Math.min(...val)
+ }
+ }
+ return min;
+ } catch (error) {
+ console.log('error---', error)
+ }
+}
+/**
+ * 璁$畻缁欏畾鏁板�肩殑骞冲潎鍊�
+ *
+ * @param val 鏁板�煎垪琛紝鍙寘鍚换鎰忎釜鍙傛暟
+ * @returns 杩斿洖骞冲潎鍊硷紝濡傛灉鏁板�煎垪琛ㄤ负绌烘垨鍖呭惈闈炴暟鍊奸」锛屽垯杩斿洖null
+ */
+function AVERAGE(...val){
+ try {
+ let num = null;
+ let arr = [];
+ if(val!=null&&val!=undefined&&val!='undefined'&&val!='NaN'&&val.length>0){
+ arr = val.filter(item=>item!==null&&item!==''&&item!=undefined)
+ arr.forEach(item=>{
+ num+=item;
+ })
+ if(arr.length>0){
+ return num/arr.length;
+ }else{
+ return null;
+ }
+ }else{
+ return null;
+ }
+ } catch (error) {
+ console.log('error---', error)
+ }
+}
+/**
+ * 璁$畻涓�涓暟鐨勭粷瀵瑰��
+ *
+ * @param val 浠绘剰鏁板��
+ * @returns 杩斿洖璇ユ暟鍊肩殑缁濆鍊�
+ */
+function ABS(val){
+ try {
+ return Math.abs(val);
+ } catch (error) {
+ console.log('error---', error)
+ }
+}
+/**
+ * 璁$畻涓�缁勬暟瀛楃殑涓綅鏁�
+ *
+ * @param val 浠绘剰涓弬鏁帮紝闇�瑕佽绠椾腑浣嶆暟鐨勬暟瀛�
+ * @returns 濡傛灉鍙傛暟涓湁鏈夋晥鐨勬暟瀛楋紝鍒欒繑鍥炶绠楀嚭鐨勪腑浣嶆暟锛涘惁鍒欒繑鍥瀗ull
+ */
+function MEDIAN(...val){
+ try {
+ let arr = [];
+ if(val&&val.length>0){
+ arr = val.filter(item=>item!=null&&item!=='')
+ const sortedArr = arr.sort((a, b) => a - b);
+ // 璁$畻涓綅鏁�
+ const half = Math.floor(sortedArr.length / 2);
+ if(arr.length>0){
+ // 濡傛灉鏁扮粍闀垮害鏄鏁帮紝鐩存帴鍙栦腑闂寸殑鍏冪礌
+ if (sortedArr.length % 2 === 1) {
+ return sortedArr[half];
+ } else { // 濡傛灉鏁扮粍闀垮害鏄伓鏁帮紝鍙栦腑闂翠袱涓厓绱犵殑骞冲潎鍊�
+ return (sortedArr[half - 1] + sortedArr[half]) / 2;
+ }
+ }else{
+ return null;
+ }
+ }else{
+ return null;
+ }
+ } catch (error) {
+ console.log('error---', error)
+ }
+}
+
+/**
+ * 璁$畻骞�
+ *
+ * @param str 瀛楃涓插舰寮忕殑骞傝〃杈惧紡锛屼緥濡�"2^3"
+ * @returns 杩斿洖璁$畻鍚庣殑骞傚�硷紝濡傛灉琛ㄨ揪寮忔棤鏁堝垯杩斿洖null
+ */
+function CalculatePower(str){
+ try {
+ if(str&&str.includes('^')){
+ let arr = str.split('^');
+ if(arr&&arr.length>1){
+ return Math.pow(arr[0],arr[1]);
+ }else{
+ return null;
+ }
+ }
+ } catch (error) {
+ console.log('error---', error)
+ }
+}
+
+/**
+ * 鏍规嵁鍧愭爣鑾峰彇鍒楀悕
+ * @param {Object} cellId
+ */
+function getColumnNameFromId(cellId){
+ try{
+ if (! Array.isArray(cellId)) {
+ cellId = cellId.split('-');
+ }
+ var i = cellId[0];
+ var letter = '';
+ if (i > 701) {
+ letter += String.fromCharCode(64 + parseInt(i / 676));
+ letter += String.fromCharCode(64 + parseInt((i % 676) / 26));
+ } else if (i > 25) {
+ letter += String.fromCharCode(64 + parseInt(i / 26));
+ }
+ letter += String.fromCharCode(65 + (i % 26));
+ return letter + (parseInt(cellId[1]) + 1);
+ }catch(e){
+ console.log('error',e)
+ }
+}
+/**
+ * 鏍规嵁鍒楀悕鑾峰彇鍧愭爣
+ * @param {Object} id
+ * @param {Object} arr
+ */
+function getIdFromColumnName(id, arr) {
+ try{
+ // Get the letters
+ var t = /^[a-zA-Z]+/.exec(id);
+ if (t) {
+ // Base 26 calculation
+ var code = 0;
+ for (var i = 0; i < t[0].length; i++) {
+ code += parseInt(t[0].charCodeAt(i) - 64) * Math.pow(26, (t[0].length - 1 - i));
+ }
+ code--;
+ // Make sure jexcel starts on zero
+ if (code < 0) {
+ code = 0;
+ }
+
+ // Number
+ var number = parseInt(/[0-9]+$/.exec(id));
+ if (number > 0) {
+ number--;
+ }
+
+ if (arr == true) {
+ id = [ code, number ];
+ } else {
+ // id = code + '-' + number;
+ id = {
+ c:code,
+ r:number
+ }
+ }
+ }
+ return id;
+ }catch(e){
+ console.log('error',e)
+ }
+}
+
+/**
+ * 鏇存敼鍙傛暟
+ *
+ * @param f 鍙傛暟鍒楄〃
+ * @returns 杩斿洖涓�涓寘鍚潗鏍囦俊鎭殑鏁扮粍
+ */
+function changeParameter(f){
+ try {
+ let arr = getABCList(f)
+ let arr2 = []
+ arr.forEach(item=>{
+ // 鍒ゆ柇鏄惁涓鸿寖鍥达紝鍒楀MAX(A1:B2)
+ if(item.includes(':')){
+ let r0 = getIdFromColumnName(item.split(':')[0]).r;
+ let c0 = getIdFromColumnName(item.split(':')[0]).c;
+ let r1 = getIdFromColumnName(item.split(':')[1]).r;
+ let c1 = getIdFromColumnName(item.split(':')[1]).c;
+ for (let i = Number(r0); i <= Number(r1); i++) {
+ for (let u = Number(c0); u <= Number(c1); u++) {
+ arr2.push({
+ r: i,
+ c: u
+ })
+ }
+ }
+ }else{
+ // 娌℃湁鍒欑洿鎺ヨ幏鍙�
+ arr2.push(getIdFromColumnName(item))
+ }
+ })
+ return arr2;
+ } catch (error) {
+ console.log('error',error)
+ }
+}
+/**
+ * 鑾峰彇鍖呭惈 ABC 瀛楃鐨勫垪琛�
+ *
+ * @param f 瀛楃涓诧紝鍖呭惈闇�瑕佽В鏋愮殑鍏紡鎴栬〃杈惧紡
+ * @returns 鍖呭惈 ABC 瀛楃鐨勬暟缁勫垪琛�
+ */
+function getABCList(f){
+ try {
+ let regex = /[=\+\-\*\%\(\)\/\^\s]/g;
+ // 涓婇潰璁$畻鍑芥暟鏂板鍚庯紝杩欓噷涔熻鍚屾澧炲姞
+ let fouList = [
+ "SUM",
+ 'MAX',
+ 'MIN',
+ 'AVERAGE',
+ 'ABS',
+ ]
+ // 鏇挎崲鐗规畩瀛楃
+ f = f.replace(regex, ',').replace(new RegExp('"&', 'g'),'').replace(new RegExp('&"', 'g'),'')
+ fouList.forEach(item=>{
+ f = f.replace(new RegExp(item, 'g'),',')
+ })
+ let arr = f.split(',').filter(item=>{
+ return item&& /[a-zA-Z]/.test(item)&&item!='undefined'&&item!='null'
+ });
+ return arr;
+ } catch (error) {
+ console.log('error',error)
+ }
+}
+/**
+ * 鑾峰彇鎵�鏈夊崟鍏冩牸
+ *
+ * @param f 琛ㄦ牸鏁版嵁鎴栫浉鍏冲弬鏁�
+ * @returns 杩斿洖涓�涓璞★紝鍏堕敭涓哄崟鍏冩牸鐨勫敮涓�鏍囪瘑绗︼紙鐢卞垪鍜岃ID鎷兼帴鑰屾垚锛夛紝鍊间负null
+ */
+function getAllCell(f){
+ try {
+ let arr = changeParameter(f)
+ let arr0 = {}
+ arr.forEach(item=>{
+ arr0[getColumnNameFromId(`${item.c}`+'-'+`${item.r}`)] = null
+ })
+ return arr0;
+ } catch (error) {
+ console.log('error',error)
+ }
+}
+
+
+/**
+ * 璁$畻鍑芥暟
+ *
+ * @param f 瀛楃涓茬被鍨嬶紝琛ㄧず寰呰绠楃殑鍏紡
+ * @param comValue 瀵硅薄绫诲瀷锛岃〃绀鸿鏇挎崲鐨勫崟鍏冩牸鍊硷紝閿负鍗曞厓鏍煎悕绉帮紝鍊间负鏇挎崲鍚庣殑鍊�
+ * @returns 杩斿洖璁$畻鍚庣殑缁撴灉锛屽鏋滆绠楀け璐ュ垯杩斿洖0
+ */
+function compute(f,comValue, isPoint){
+ try {
+ let str = f
+ // 鑾峰彇鍗曞厓鏍煎搴斿��
+ let arr = getAllCell(f)
+ for (var a in comValue) {
+ if(comValue[a]!=='undefined'&&comValue[a]!=='null'&&comValue[a]!==undefined){
+ if(typeof(comValue[a])=='string'&&comValue[a].includes('^')){
+ // 璁$畻骞傛
+ arr[a] = CalculatePower(comValue[a])
+ } else{
+ arr[a] = comValue[a]
+ }
+ }
+ }
+ // 瑙f瀽鍏紡鍙傛暟锛岀壒鍒槸甯︼細鐨�
+ let arr0 = getABCList(f)
+ let obj = {}
+ arr0.forEach(item=>{
+ if(item.includes(':')){
+ let arr1 = []
+ let r0 = getIdFromColumnName(item.split(':')[0]).r;
+ let c0 = getIdFromColumnName(item.split(':')[0]).c;
+ let r1 = getIdFromColumnName(item.split(':')[1]).r;
+ let c1 = getIdFromColumnName(item.split(':')[1]).c;
+ for (let i = Number(r0); i <= Number(r1); i++) {
+ for (let u = Number(c0); u <= Number(c1); u++) {
+ arr1.push({
+ r: i,
+ c: u
+ })
+ }
+ }
+ let arr2 = []
+ arr1.forEach(m=>{
+ arr2.push(getColumnNameFromId(`${m.c}`+'-'+`${m.r}`))
+ })
+ obj[item.split(':').join('-')] = arr2.join(',')
+ }else{
+ obj[item] = item
+ }
+ })
+ str = str.replace(new RegExp(':', 'g'),'-')
+ // 鏇挎崲鍙傛暟
+ for (var a in obj) {
+ str = str.replace(new RegExp(a, 'g'),obj[a])
+ }
+ // 璁$畻
+ for (var a in arr) {
+ str = str.replace(new RegExp(a, 'g'),arr[a])
+ }
+ if(str.includes(',,')){
+ str = str.replace(new RegExp(',,', 'g'),',')
+ }
+ if(str.includes(',,')){
+ str = str.replace(new RegExp(',,', 'g'),',')
+ }
+ if(str.includes(',,')){
+ str = str.replace(new RegExp(',,', 'g'),',')
+ }
+ if(str.includes(',,')){
+ str = str.replace(new RegExp(',,', 'g'),',')
+ }
+ if(str.includes(',,')){
+ str = str.replace(new RegExp(',,', 'g'),',')
+ }
+ // console.log('str', str)
+ if(str.includes('&"/"&')){
+ // 璁$畻甯︽枩鏉犵殑
+ return str.replace(new RegExp('&"/"&', 'g'),'/').replace(new RegExp('//', 'g'),'')
+ } else if (isPoint) {
+ // 璁$畻甯﹀皬鏁扮偣鐨�
+ return str.replace('ABS', '').replace(/\(|\)/g, '')
+ }else {
+ console.log('str', str)
+ // 璁$畻甯歌鐨�
+ return eval(str)
+ }
+ } catch (error) {
+ console.log('error',error)
+ }
+}
+
+
+
+
+/*
+ * big.js v5.2.2
+ * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.
+ * Copyright (c) 2018 Michael Mclaughlin <M8ch88l@gmail.com>
+ * https://github.com/MikeMcl/big.js/LICENCE
+ */
+;(function (GLOBAL) {
+ 'use strict';
+ var Big,
+
+
+/************************************** EDITABLE DEFAULTS *****************************************/
+
+
+ // The default values below must be integers within the stated ranges.
+
+ /*
+ * The maximum number of decimal places (DP) of the results of operations involving division:
+ * div and sqrt, and pow with negative exponents.
+ */
+ DP = 20, // 0 to MAX_DP
+
+ /*
+ * The rounding mode (RM) used when rounding to the above decimal places.
+ *
+ * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)
+ * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)
+ * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)
+ * 3 Away from zero. (ROUND_UP)
+ */
+ RM = 1, // 0, 1, 2 or 3
+
+ // The maximum value of DP and Big.DP.
+ MAX_DP = 1E6, // 0 to 1000000
+
+ // The maximum magnitude of the exponent argument to the pow method.
+ MAX_POWER = 1E6, // 1 to 1000000
+
+ /*
+ * The negative exponent (NE) at and beneath which toString returns exponential notation.
+ * (JavaScript numbers: -7)
+ * -1000000 is the minimum recommended exponent value of a Big.
+ */
+ NE = -7, // 0 to -1000000
+
+ /*
+ * The positive exponent (PE) at and above which toString returns exponential notation.
+ * (JavaScript numbers: 21)
+ * 1000000 is the maximum recommended exponent value of a Big.
+ * (This limit is not enforced or checked.)
+ */
+ PE = 21, // 0 to 1000000
+
+
+/**************************************************************************************************/
+
+
+ // Error messages.
+ NAME = '[big.js] ',
+ INVALID = NAME + 'Invalid ',
+ INVALID_DP = INVALID + 'decimal places',
+ INVALID_RM = INVALID + 'rounding mode',
+ DIV_BY_ZERO = NAME + 'Division by zero',
+
+ // The shared prototype object.
+ P = {},
+ UNDEFINED = void 0,
+ NUMERIC = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
+
+
+ /*
+ * Create and return a Big constructor.
+ *
+ */
+ function _Big_() {
+
+ /*
+ * The Big constructor and exported function.
+ * Create and return a new instance of a Big number object.
+ *
+ * n {number|string|Big} A numeric value.
+ */
+ function Big(n) {
+ var x = this;
+
+ // Enable constructor usage without new.
+ if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);
+
+ // Duplicate.
+ if (n instanceof Big) {
+ x.s = n.s;
+ x.e = n.e;
+ x.c = n.c.slice();
+ } else {
+ parse(x, n);
+ }
+
+ /*
+ * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which
+ * points to Object.
+ */
+ x.constructor = Big;
+ }
+
+ Big.prototype = P;
+ Big.DP = DP;
+ Big.RM = RM;
+ Big.NE = NE;
+ Big.PE = PE;
+ Big.version = '5.2.2';
+
+ return Big;
+ }
+
+
+ /*
+ * Parse the number or string value passed to a Big constructor.
+ *
+ * x {Big} A Big number instance.
+ * n {number|string} A numeric value.
+ */
+ function parse(x, n) {
+ var e, i, nl;
+
+ // Minus zero?
+ if (n === 0 && 1 / n < 0) n = '-0';
+ else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number');
+
+ // Determine sign.
+ x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;
+
+ // Decimal point?
+ if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');
+
+ // Exponential form?
+ if ((i = n.search(/e/i)) > 0) {
+
+ // Determine exponent.
+ if (e < 0) e = i;
+ e += +n.slice(i + 1);
+ n = n.substring(0, i);
+ } else if (e < 0) {
+
+ // Integer.
+ e = n.length;
+ }
+
+ nl = n.length;
+
+ // Determine leading zeros.
+ for (i = 0; i < nl && n.charAt(i) == '0';) ++i;
+
+ if (i == nl) {
+
+ // Zero.
+ x.c = [x.e = 0];
+ } else {
+
+ // Determine trailing zeros.
+ for (; nl > 0 && n.charAt(--nl) == '0';);
+ x.e = e - i - 1;
+ x.c = [];
+
+ // Convert string to array of digits without leading/trailing zeros.
+ for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);
+ }
+
+ return x;
+ }
+
+
+ /*
+ * Round Big x to a maximum of dp decimal places using rounding mode rm.
+ * Called by stringify, P.div, P.round and P.sqrt.
+ *
+ * x {Big} The Big to round.
+ * dp {number} Integer, 0 to MAX_DP inclusive.
+ * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP)
+ * [more] {boolean} Whether the result of division was truncated.
+ */
+ function round(x, dp, rm, more) {
+ var xc = x.c,
+ i = x.e + dp + 1;
+
+ if (i < xc.length) {
+ if (rm === 1) {
+
+ // xc[i] is the digit after the digit that may be rounded up.
+ more = xc[i] >= 5;
+ } else if (rm === 2) {
+ more = xc[i] > 5 || xc[i] == 5 &&
+ (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1);
+ } else if (rm === 3) {
+ more = more || !!xc[0];
+ } else {
+ more = false;
+ if (rm !== 0) throw Error(INVALID_RM);
+ }
+
+ if (i < 1) {
+ xc.length = 1;
+
+ if (more) {
+
+ // 1, 0.1, 0.01, 0.001, 0.0001 etc.
+ x.e = -dp;
+ xc[0] = 1;
+ } else {
+
+ // Zero.
+ xc[0] = x.e = 0;
+ }
+ } else {
+
+ // Remove any digits after the required decimal places.
+ xc.length = i--;
+
+ // Round up?
+ if (more) {
+
+ // Rounding up may mean the previous digit has to be rounded up.
+ for (; ++xc[i] > 9;) {
+ xc[i] = 0;
+ if (!i--) {
+ ++x.e;
+ xc.unshift(1);
+ }
+ }
+ }
+
+ // Remove trailing zeros.
+ for (i = xc.length; !xc[--i];) xc.pop();
+ }
+ } else if (rm < 0 || rm > 3 || rm !== ~~rm) {
+ throw Error(INVALID_RM);
+ }
+
+ return x;
+ }
+
+
+ /*
+ * Return a string representing the value of Big x in normal or exponential notation.
+ * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.
+ *
+ * x {Big}
+ * id? {number} Caller id.
+ * 1 toExponential
+ * 2 toFixed
+ * 3 toPrecision
+ * 4 valueOf
+ * n? {number|undefined} Caller's argument.
+ * k? {number|undefined}
+ */
+ function stringify(x, id, n, k) {
+ var e, s,
+ Big = x.constructor,
+ z = !x.c[0];
+
+ if (n !== UNDEFINED) {
+ if (n !== ~~n || n < (id == 3) || n > MAX_DP) {
+ throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP);
+ }
+
+ x = new Big(x);
+
+ // The index of the digit that may be rounded up.
+ n = k - x.e;
+
+ // Round?
+ if (x.c.length > ++k) round(x, n, Big.RM);
+
+ // toFixed: recalculate k as x.e may have changed if value rounded up.
+ if (id == 2) k = x.e + n + 1;
+
+ // Append zeros?
+ for (; x.c.length < k;) x.c.push(0);
+ }
+
+ e = x.e;
+ s = x.c.join('');
+ n = s.length;
+
+ // Exponential notation?
+ if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) {
+ s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;
+
+ // Normal notation.
+ } else if (e < 0) {
+ for (; ++e;) s = '0' + s;
+ s = '0.' + s;
+ } else if (e > 0) {
+ if (++e > n) for (e -= n; e--;) s += '0';
+ else if (e < n) s = s.slice(0, e) + '.' + s.slice(e);
+ } else if (n > 1) {
+ s = s.charAt(0) + '.' + s.slice(1);
+ }
+
+ return x.s < 0 && (!z || id == 4) ? '-' + s : s;
+ }
+
+
+ // Prototype/instance methods
+
+
+ /*
+ * Return a new Big whose value is the absolute value of this Big.
+ */
+ P.abs = function () {
+ var x = new this.constructor(this);
+ x.s = 1;
+ return x;
+ };
+
+
+ /*
+ * Return 1 if the value of this Big is greater than the value of Big y,
+ * -1 if the value of this Big is less than the value of Big y, or
+ * 0 if they have the same value.
+ */
+ P.cmp = function (y) {
+ var isneg,
+ x = this,
+ xc = x.c,
+ yc = (y = new x.constructor(y)).c,
+ i = x.s,
+ j = y.s,
+ k = x.e,
+ l = y.e;
+
+ // Either zero?
+ if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;
+
+ // Signs differ?
+ if (i != j) return i;
+
+ isneg = i < 0;
+
+ // Compare exponents.
+ if (k != l) return k > l ^ isneg ? 1 : -1;
+
+ j = (k = xc.length) < (l = yc.length) ? k : l;
+
+ // Compare digit by digit.
+ for (i = -1; ++i < j;) {
+ if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;
+ }
+
+ // Compare lengths.
+ return k == l ? 0 : k > l ^ isneg ? 1 : -1;
+ };
+
+
+ /*
+ * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,
+ * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.
+ */
+ P.div = function (y) {
+ var x = this,
+ Big = x.constructor,
+ a = x.c, // dividend
+ b = (y = new Big(y)).c, // divisor
+ k = x.s == y.s ? 1 : -1,
+ dp = Big.DP;
+
+ if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP);
+
+ // Divisor is zero?
+ if (!b[0]) throw Error(DIV_BY_ZERO);
+
+ // Dividend is 0? Return +-0.
+ if (!a[0]) return new Big(k * 0);
+
+ var bl, bt, n, cmp, ri,
+ bz = b.slice(),
+ ai = bl = b.length,
+ al = a.length,
+ r = a.slice(0, bl), // remainder
+ rl = r.length,
+ q = y, // quotient
+ qc = q.c = [],
+ qi = 0,
+ d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result
+
+ q.s = k;
+ k = d < 0 ? 0 : d;
+
+ // Create version of divisor with leading zero.
+ bz.unshift(0);
+
+ // Add zeros to make remainder as long as divisor.
+ for (; rl++ < bl;) r.push(0);
+
+ do {
+
+ // n is how many times the divisor goes into current remainder.
+ for (n = 0; n < 10; n++) {
+
+ // Compare divisor and remainder.
+ if (bl != (rl = r.length)) {
+ cmp = bl > rl ? 1 : -1;
+ } else {
+ for (ri = -1, cmp = 0; ++ri < bl;) {
+ if (b[ri] != r[ri]) {
+ cmp = b[ri] > r[ri] ? 1 : -1;
+ break;
+ }
+ }
+ }
+
+ // If divisor < remainder, subtract divisor from remainder.
+ if (cmp < 0) {
+
+ // Remainder can't be more than 1 digit longer than divisor.
+ // Equalise lengths using divisor with extra leading zero?
+ for (bt = rl == bl ? b : bz; rl;) {
+ if (r[--rl] < bt[rl]) {
+ ri = rl;
+ for (; ri && !r[--ri];) r[ri] = 9;
+ --r[ri];
+ r[rl] += 10;
+ }
+ r[rl] -= bt[rl];
+ }
+
+ for (; !r[0];) r.shift();
+ } else {
+ break;
+ }
+ }
+
+ // Add the digit n to the result array.
+ qc[qi++] = cmp ? n : ++n;
+
+ // Update the remainder.
+ if (r[0] && cmp) r[rl] = a[ai] || 0;
+ else r = [a[ai]];
+
+ } while ((ai++ < al || r[0] !== UNDEFINED) && k--);
+
+ // Leading zero? Do not remove if result is simply zero (qi == 1).
+ if (!qc[0] && qi != 1) {
+
+ // There can't be more than one zero.
+ qc.shift();
+ q.e--;
+ }
+
+ // Round?
+ if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED);
+
+ return q;
+ };
+
+
+ /*
+ * Return true if the value of this Big is equal to the value of Big y, otherwise return false.
+ */
+ P.eq = function (y) {
+ return !this.cmp(y);
+ };
+
+
+ /*
+ * Return true if the value of this Big is greater than the value of Big y, otherwise return
+ * false.
+ */
+ P.gt = function (y) {
+ return this.cmp(y) > 0;
+ };
+
+
+ /*
+ * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise
+ * return false.
+ */
+ P.gte = function (y) {
+ return this.cmp(y) > -1;
+ };
+
+
+ /*
+ * Return true if the value of this Big is less than the value of Big y, otherwise return false.
+ */
+ P.lt = function (y) {
+ return this.cmp(y) < 0;
+ };
+
+
+ /*
+ * Return true if the value of this Big is less than or equal to the value of Big y, otherwise
+ * return false.
+ */
+ P.lte = function (y) {
+ return this.cmp(y) < 1;
+ };
+
+
+ /*
+ * Return a new Big whose value is the value of this Big minus the value of Big y.
+ */
+ P.minus = P.sub = function (y) {
+ var i, j, t, xlty,
+ x = this,
+ Big = x.constructor,
+ a = x.s,
+ b = (y = new Big(y)).s;
+
+ // Signs differ?
+ if (a != b) {
+ y.s = -b;
+ return x.plus(y);
+ }
+
+ var xc = x.c.slice(),
+ xe = x.e,
+ yc = y.c,
+ ye = y.e;
+
+ // Either zero?
+ if (!xc[0] || !yc[0]) {
+
+ // y is non-zero? x is non-zero? Or both are zero.
+ return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0);
+ }
+
+ // Determine which is the bigger number. Prepend zeros to equalise exponents.
+ if (a = xe - ye) {
+
+ if (xlty = a < 0) {
+ a = -a;
+ t = xc;
+ } else {
+ ye = xe;
+ t = yc;
+ }
+
+ t.reverse();
+ for (b = a; b--;) t.push(0);
+ t.reverse();
+ } else {
+
+ // Exponents equal. Check digit by digit.
+ j = ((xlty = xc.length < yc.length) ? xc : yc).length;
+
+ for (a = b = 0; b < j; b++) {
+ if (xc[b] != yc[b]) {
+ xlty = xc[b] < yc[b];
+ break;
+ }
+ }
+ }
+
+ // x < y? Point xc to the array of the bigger number.
+ if (xlty) {
+ t = xc;
+ xc = yc;
+ yc = t;
+ y.s = -y.s;
+ }
+
+ /*
+ * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only
+ * needs to start at yc.length.
+ */
+ if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;
+
+ // Subtract yc from xc.
+ for (b = i; j > a;) {
+ if (xc[--j] < yc[j]) {
+ for (i = j; i && !xc[--i];) xc[i] = 9;
+ --xc[i];
+ xc[j] += 10;
+ }
+
+ xc[j] -= yc[j];
+ }
+
+ // Remove trailing zeros.
+ for (; xc[--b] === 0;) xc.pop();
+
+ // Remove leading zeros and adjust exponent accordingly.
+ for (; xc[0] === 0;) {
+ xc.shift();
+ --ye;
+ }
+
+ if (!xc[0]) {
+
+ // n - n = +0
+ y.s = 1;
+
+ // Result must be zero.
+ xc = [ye = 0];
+ }
+
+ y.c = xc;
+ y.e = ye;
+
+ return y;
+ };
+
+
+ /*
+ * Return a new Big whose value is the value of this Big modulo the value of Big y.
+ */
+ P.mod = function (y) {
+ var ygtx,
+ x = this,
+ Big = x.constructor,
+ a = x.s,
+ b = (y = new Big(y)).s;
+
+ if (!y.c[0]) throw Error(DIV_BY_ZERO);
+
+ x.s = y.s = 1;
+ ygtx = y.cmp(x) == 1;
+ x.s = a;
+ y.s = b;
+
+ if (ygtx) return new Big(x);
+
+ a = Big.DP;
+ b = Big.RM;
+ Big.DP = Big.RM = 0;
+ x = x.div(y);
+ Big.DP = a;
+ Big.RM = b;
+
+ return this.minus(x.times(y));
+ };
+
+
+ /*
+ * Return a new Big whose value is the value of this Big plus the value of Big y.
+ */
+ P.plus = P.add = function (y) {
+ var t,
+ x = this,
+ Big = x.constructor,
+ a = x.s,
+ b = (y = new Big(y)).s;
+
+ // Signs differ?
+ if (a != b) {
+ y.s = -b;
+ return x.minus(y);
+ }
+
+ var xe = x.e,
+ xc = x.c,
+ ye = y.e,
+ yc = y.c;
+
+ // Either zero? y is non-zero? x is non-zero? Or both are zero.
+ if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0);
+
+ xc = xc.slice();
+
+ // Prepend zeros to equalise exponents.
+ // Note: reverse faster than unshifts.
+ if (a = xe - ye) {
+ if (a > 0) {
+ ye = xe;
+ t = yc;
+ } else {
+ a = -a;
+ t = xc;
+ }
+
+ t.reverse();
+ for (; a--;) t.push(0);
+ t.reverse();
+ }
+
+ // Point xc to the longer array.
+ if (xc.length - yc.length < 0) {
+ t = yc;
+ yc = xc;
+ xc = t;
+ }
+
+ a = yc.length;
+
+ // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.
+ for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0;
+
+ // No need to check for zero, as +x + +y != 0 && -x + -y != 0
+
+ if (b) {
+ xc.unshift(b);
+ ++ye;
+ }
+
+ // Remove trailing zeros.
+ for (a = xc.length; xc[--a] === 0;) xc.pop();
+
+ y.c = xc;
+ y.e = ye;
+
+ return y;
+ };
+
+
+ /*
+ * Return a Big whose value is the value of this Big raised to the power n.
+ * If n is negative, round to a maximum of Big.DP decimal places using rounding
+ * mode Big.RM.
+ *
+ * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.
+ */
+ P.pow = function (n) {
+ var x = this,
+ one = new x.constructor(1),
+ y = one,
+ isneg = n < 0;
+
+ if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent');
+ if (isneg) n = -n;
+
+ for (;;) {
+ if (n & 1) y = y.times(x);
+ n >>= 1;
+ if (!n) break;
+ x = x.times(x);
+ }
+
+ return isneg ? one.div(y) : y;
+ };
+
+
+ /*
+ * Return a new Big whose value is the value of this Big rounded using rounding mode rm
+ * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a
+ * multiple of 10**-dp.
+ * If dp is not specified, round to 0 decimal places.
+ * If rm is not specified, use Big.RM.
+ *
+ * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.
+ * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP)
+ */
+ P.round = function (dp, rm) {
+ var Big = this.constructor;
+ if (dp === UNDEFINED) dp = 0;
+ else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP);
+ return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm);
+ };
+
+
+ /*
+ * Return a new Big whose value is the square root of the value of this Big, rounded, if
+ * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.
+ */
+ P.sqrt = function () {
+ var r, c, t,
+ x = this,
+ Big = x.constructor,
+ s = x.s,
+ e = x.e,
+ half = new Big(0.5);
+
+ // Zero?
+ if (!x.c[0]) return new Big(x);
+
+ // Negative?
+ if (s < 0) throw Error(NAME + 'No square root');
+
+ // Estimate.
+ s = Math.sqrt(x + '');
+
+ // Math.sqrt underflow/overflow?
+ // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.
+ if (s === 0 || s === 1 / 0) {
+ c = x.c.join('');
+ if (!(c.length + e & 1)) c += '0';
+ s = Math.sqrt(c);
+ e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);
+ r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);
+ } else {
+ r = new Big(s);
+ }
+
+ e = r.e + (Big.DP += 4);
+
+ // Newton-Raphson iteration.
+ do {
+ t = r;
+ r = half.times(t.plus(x.div(t)));
+ } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));
+
+ return round(r, Big.DP -= 4, Big.RM);
+ };
+
+
+ /*
+ * Return a new Big whose value is the value of this Big times the value of Big y.
+ */
+ P.times = P.mul = function (y) {
+ var c,
+ x = this,
+ Big = x.constructor,
+ xc = x.c,
+ yc = (y = new Big(y)).c,
+ a = xc.length,
+ b = yc.length,
+ i = x.e,
+ j = y.e;
+
+ // Determine sign of result.
+ y.s = x.s == y.s ? 1 : -1;
+
+ // Return signed 0 if either 0.
+ if (!xc[0] || !yc[0]) return new Big(y.s * 0);
+
+ // Initialise exponent of result as x.e + y.e.
+ y.e = i + j;
+
+ // If array xc has fewer digits than yc, swap xc and yc, and lengths.
+ if (a < b) {
+ c = xc;
+ xc = yc;
+ yc = c;
+ j = a;
+ a = b;
+ b = j;
+ }
+
+ // Initialise coefficient array of result with zeros.
+ for (c = new Array(j = a + b); j--;) c[j] = 0;
+
+ // Multiply.
+
+ // i is initially xc.length.
+ for (i = b; i--;) {
+ b = 0;
+
+ // a is yc.length.
+ for (j = a + i; j > i;) {
+
+ // Current sum of products at this digit position, plus carry.
+ b = c[j] + yc[i] * xc[j - i - 1] + b;
+ c[j--] = b % 10;
+
+ // carry
+ b = b / 10 | 0;
+ }
+
+ c[j] = (c[j] + b) % 10;
+ }
+
+ // Increment result exponent if there is a final carry, otherwise remove leading zero.
+ if (b) ++y.e;
+ else c.shift();
+
+ // Remove trailing zeros.
+ for (i = c.length; !c[--i];) c.pop();
+ y.c = c;
+
+ return y;
+ };
+
+
+ /*
+ * Return a string representing the value of this Big in exponential notation to dp fixed decimal
+ * places and rounded using Big.RM.
+ *
+ * dp? {number} Integer, 0 to MAX_DP inclusive.
+ */
+ P.toExponential = function (dp) {
+ return stringify(this, 1, dp, dp);
+ };
+
+
+ /*
+ * Return a string representing the value of this Big in normal notation to dp fixed decimal
+ * places and rounded using Big.RM.
+ *
+ * dp? {number} Integer, 0 to MAX_DP inclusive.
+ *
+ * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.
+ * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.
+ */
+ P.toFixed = function (dp) {
+ return stringify(this, 2, dp, this.e + dp);
+ };
+
+
+ /*
+ * Return a string representing the value of this Big rounded to sd significant digits using
+ * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent
+ * the integer part of the value in normal notation.
+ *
+ * sd {number} Integer, 1 to MAX_DP inclusive.
+ */
+ P.toPrecision = function (sd) {
+ return stringify(this, 3, sd, sd - 1);
+ };
+
+
+ /*
+ * Return a string representing the value of this Big.
+ * Return exponential notation if this Big has a positive exponent equal to or greater than
+ * Big.PE, or a negative exponent equal to or less than Big.NE.
+ * Omit the sign for negative zero.
+ */
+ P.toString = function () {
+ return stringify(this);
+ };
+
+
+ /*
+ * Return a string representing the value of this Big.
+ * Return exponential notation if this Big has a positive exponent equal to or greater than
+ * Big.PE, or a negative exponent equal to or less than Big.NE.
+ * Include the sign for negative zero.
+ */
+ P.valueOf = P.toJSON = function () {
+ return stringify(this, 4);
+ };
+
+
+ // Export
+
+
+ Big = _Big_();
+
+ Big['default'] = Big.Big = Big;
+
+ //AMD.
+ if (typeof define === 'function' && define.amd) {
+ define(function () { return Big; });
+
+ // Node and other CommonJS-like environments that support module.exports.
+ } else if (typeof module !== 'undefined' && module.exports) {
+ module.exports = Big;
+
+ //Browser.
+ } else {
+ GLOBAL.Big = Big;
+ }
+})(this);
diff --git a/src/utils/thread/worker0.js b/src/utils/thread/worker0.js
new file mode 100644
index 0000000..5000a18
--- /dev/null
+++ b/src/utils/thread/worker0.js
@@ -0,0 +1,154 @@
+// 姝ょ嚎绋嬩负鏁版嵁閲囬泦绾跨▼
+
+// 淇濆瓨鏁版嵁
+// 鏁版嵁閲囬泦淇℃伅
+'use strict';//涓簀s鑴氭湰寮�鍚弗鏍兼ā寮�
+let dataAcquisitionInfo = null;
+// 鏁版嵁鍒楄〃
+let list = null;
+// 浼犻�掑埌涓荤嚎绋嬬殑鏁版嵁
+let result = {
+ method:'',
+ value:null
+}
+// 浼樺寲鏁伴噰杈冨鏁版嵁鏃�--璁板綍鏁伴噰椤圭洰鐨処d鏁扮粍锛岀洰鐨勬槸鍙栨渶鍚庝竴涓暟閲囬」鐩紝浼犲埌涓荤嚎绋嬭繘琛屾壒閲忕殑鏁版嵁閲囬泦淇濆瓨
+let arrSpecial = []
+// 鎺ユ敹涓荤嚎绋嬩紶閫掕繃鏉ョ殑鏁版嵁
+self.onmessage = function(event) {
+ const data = JSON.parse(event.data);
+ dataAcquisitionInfo = data.dataAcquisitionInfo;
+ list = data.list;
+ // console.log(111,dataAcquisitionInfo)
+ arrSpecial = []
+ // 澶勭悊鏁版嵁
+ handleData()
+}
+
+function handleData(){
+ // 閬嶅巻鏁版嵁鍒楄〃
+ list.forEach((item,index)=>{
+ let num = 0;
+ let str = ''
+ item.forEach(m=>{
+ if(m.v.ps&&(m.v.ps.value=='妫�楠屽瓙椤�'||m.v.ps.value=='妫�楠岄」')){
+ if(m.v.ps&&m.v.ps.value=='妫�楠岄」'){
+ if(num==0){
+ str = m.v.v+','
+ num++
+ }
+ }
+ if(m.v.ps&&m.v.ps.value=='妫�楠屽瓙椤�'){
+ if(num==1){
+ str = str+m.v.v
+ }
+ }
+ // 涓婇潰鍦ㄨ褰曟楠岄」+妫�楠屽瓙椤圭殑鍚嶇О锛屽鏋滄暟閲囧寘鍚楠岄」+妫�楠屽瓙椤圭殑鏁版嵁锛屽垯鎵ц
+ if(dataAcquisitionInfo[str]){
+ let num = 0;//璇ユ楠岄」瀵瑰簲妫�楠屽�肩殑涓暟锛岀敤鐢ㄥ垽鏂渶澶氭湁澶氬皯涓楠屽�硷紝濡傛灉澶氭閲囬泦瓒呰繃浜嗚涓暟锛屽垯璧嬪�肩粰鏈�鍚庝竴涓楠屽��
+ list[index].forEach(n=>{
+ if(n.v.ps&&n.v.ps.value&&typeof n.v.ps.value == 'string'&&n.v.ps.value.includes('妫�楠屽��')){
+ num++
+ }
+ })
+ list[index].forEach((n,i)=>{
+ if(n.v.ps&&n.v.ps.value&&typeof n.v.ps.value == 'string'&&n.v.ps.value.includes('妫�楠屽��')){
+ let arr = n.v.ps.value.split('鍊�')
+ if(Array.isArray(dataAcquisitionInfo[str].value)){
+ // 濡傛灉鏁版嵁婧愪负鏁扮粍锛屽垯鎵ц
+ for (let i = 0; i < dataAcquisitionInfo[str].value.length; i++) {
+ if(i+1==arr[1]){
+ // 璧嬪�兼暟閲囦紭鍖栨楠岄」鍒楄〃
+ arrSpecial.push(n.i)
+ setTimeout(()=>{
+ let num0 = 0
+ if(n.v.ct&&n.v.ct.fa&&typeof n.v.ct.fa == 'string'&&n.v.ct.fa.includes('.')){
+ // 淇濈暀妯℃澘閰嶇疆鐨勫皬鏁扮偣浣嶆暟
+ let str0 = n.v.ct.fa.split('.')[1]
+ num0 = str0.length
+ n.v.v = dataAcquisitionInfo[str].value[i]?Number(dataAcquisitionInfo[str].value[i]).toFixed(num0):dataAcquisitionInfo[str].value[i]
+ }else{
+ // 鐩存帴璧嬪��
+ n.v.v = dataAcquisitionInfo[str].value[i]
+ }
+ // 浼犻�掔粰涓荤嚎绋�
+ result = {
+ method:'changeInput',
+ value:{
+ list:list,
+ n:n
+ }
+ }
+ self.postMessage(JSON.stringify(result))
+ },2000)
+ }
+ }
+ }else{
+ // 濡傛灉鏁版嵁婧愪负瀛楃鎴栨暟瀛楋紝鍒欐墽琛�
+ if(arr[1] ==dataAcquisitionInfo[str].frequency){
+ // 濡傛灉鏁伴噰娆℃暟绛変簬妫�楠屽�煎簭鍙凤紝鍒欒祴鍊肩粰褰撳墠妫�楠屽��
+ arrSpecial.push(n.i)
+ setTimeout(()=>{
+ let num0 = 0
+ if(n.v.ct&&n.v.ct.fa&&typeof n.v.ct.fa == 'string'&&n.v.ct.fa.includes('.')){
+ // 淇濈暀妯℃澘閰嶇疆鐨勫皬鏁扮偣浣嶆暟
+ let str0 = n.v.ct.fa.split('.')[1]
+ num0 = str0.length
+ n.v.v = dataAcquisitionInfo[str].value?Number(dataAcquisitionInfo[str].value).toFixed(num0):dataAcquisitionInfo[str].value
+ }else{
+ // 鐩存帴璧嬪��
+ n.v.v = dataAcquisitionInfo[str].value
+ }
+ // 浼犻�掔粰涓荤嚎绋�
+ result = {
+ method:'changeInput',
+ value:{
+ list:list,
+ n:n
+ }
+ }
+ self.postMessage(JSON.stringify(result))
+ },2000)
+ }else if(Number(dataAcquisitionInfo[str].frequency)>num){
+ // 濡傛灉鏁伴噰娆℃暟澶т簬妫�楠屽�煎簭鍙凤紝鍒欒祴鍊肩粰鏈�鍚庝竴涓楠屽��
+ if(n.v.ps.value.includes(num)){
+ arrSpecial.push(n.i)
+ setTimeout(()=>{
+ let num0 = 0
+ if(n.v.ct&&n.v.ct.fa&&typeof n.v.ct.fa == 'string'&&n.v.ct.fa.includes('.')){
+ // 淇濈暀妯℃澘閰嶇疆鐨勫皬鏁扮偣浣嶆暟
+ let str0 = n.v.ct.fa.split('.')[1]
+ num0 = str0.length
+ n.v.v = dataAcquisitionInfo[str].value?Number(dataAcquisitionInfo[str].value).toFixed(num0):dataAcquisitionInfo[str].value
+ }else{
+ // 鐩存帴璧嬪��
+ n.v.v = dataAcquisitionInfo[str].value
+ }
+ // 浼犻�掔粰涓荤嚎绋�
+ result = {
+ method:'changeInput',
+ value:{
+ list:list,
+ n:n
+ }
+ }
+ self.postMessage(JSON.stringify(result))
+ },2000)
+ }
+ }
+ }
+ }
+ })
+ }
+ }
+ })
+ })
+ // if(arrSpecial[arrSpecial.length-1]){
+ // //浼樺寲鏁伴噰杈冨鏁版嵁鏃�-璁板綍鏈�鍚庝竴涓楠岄」鐨刬d锛岀敤浜庡悗缁鐞�
+ // setTimeout(()=>{
+ // result = {
+ // getDataTypeId:arrSpecial[arrSpecial.length-1],
+ // }
+ // self.postMessage(JSON.stringify(result))
+ // },0)
+ // }
+}
diff --git a/src/views/business/inspectionTask/Inspection.vue b/src/views/business/inspectionTask/Inspection.vue
index 18c7feb..5ded8be 100644
--- a/src/views/business/inspectionTask/Inspection.vue
+++ b/src/views/business/inspectionTask/Inspection.vue
@@ -665,7 +665,6 @@
class="form-inline"
label-width="50px"
style="padding-top: 0; padding-left: 10px"
- v-if="PROJECT == '妫�娴嬩腑蹇�'"
>
<el-form-item label="娓╁害:" style="margin-bottom: 0">
<el-input
@@ -699,7 +698,6 @@
tableLists.find((m) => m.templateId == currentTable)
.templateName == '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
temDataAcquisition)) &&
- PROJECT == '妫�娴嬩腑蹇�' &&
state == 1
"
@click="getDataAcquisitionDevice"
@@ -715,7 +713,6 @@
(tableLists.find((m) => m.templateId == currentTable) &&
tableLists.find((m) => m.templateId == currentTable)
.templateName == '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
- PROJECT == '妫�娴嬩腑蹇�' &&
collected &&
state == 1)
"
@@ -802,7 +799,9 @@
:disabled="
(getInspectionItemType(n.i) == 1 &&
!dataAcquisitionEidtAble) ||
- (n.u != userId && n.u != undefined && n.u != '')
+ (n.u != loginUserInfo.userId &&
+ n.u != undefined &&
+ n.u != '')
"
@input="handleInput(n)"
@change="
@@ -835,7 +834,9 @@
v-model="n.v.v"
:disabled="
getInspectionItemType(n.i) == 1 ||
- (n.u != userId && n.u != undefined && n.u != '')
+ (n.u != loginUserInfo.userId &&
+ n.u != undefined &&
+ n.u != '')
"
@change="
(m) =>
@@ -854,7 +855,9 @@
:disabled="
state > 1 ||
getInspectionItemType(n.i) == 1 ||
- (n.u != userId && n.u != undefined && n.u != '')
+ (n.u != loginUserInfo.userId &&
+ n.u != undefined &&
+ n.u != '')
"
@visible-change="(e) => getDic(e, n.i)"
@change="
@@ -870,8 +873,8 @@
<el-option
v-for="(e, i) in enumList"
:key="i"
- :label="e.label"
- :value="e.value"
+ :label="e.dictLabel"
+ :value="e.dictValue"
></el-option>
</el-select>
<span
@@ -883,27 +886,7 @@
<template
v-else-if="n.v.ps != undefined && n.v.ps.value === '缁撹'"
>
- <el-select
- v-if="
- (getInspectionValueType(n.i) == 2 ||
- getInspectionValueType(n.i) == 5) &&
- state == 1 &&
- PROJECT == '瑁呭鐢电紗'
- "
- class="table_input"
- v-model="n.v.v"
- @change="saveInsContext(n.i)"
- >
- <el-option label="鍚堟牸" :value="1"></el-option>
- <el-option label="涓嶅悎鏍�" :value="0"></el-option>
- </el-select>
- <template
- v-if="
- PROJECT == '妫�娴嬩腑蹇�' ||
- (PROJECT == '瑁呭鐢电紗' &&
- getInspectionValueType(n.i) != 2)
- "
- >
+ <template>
<span
v-if="n.v.v === 1"
:style="`font-family:${n.v.ff} !important;color: green;`"
@@ -934,7 +917,11 @@
<el-select
v-model="n.v.v"
placeholder="璁惧"
- :disabled="n.u != userId && n.u != undefined && n.u != ''"
+ :disabled="
+ n.u != loginUserInfo.userId &&
+ n.u != undefined &&
+ n.u != ''
+ "
class="table_input"
@visible-change="(e) => getEquipOptions(e, n.i)"
remote
@@ -986,13 +973,6 @@
state == 1
"
>
- <!-- <el-input class="table_input" type="textarea"
- :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
- v-model="n.v.v" @change="saveInsContext()" v-if="getInspectionValueType(n.i) == 2"></el-input>
- <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v"
- :disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()">
- <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option>
- </el-select> -->
<span :style="`font-family:${n.v.ff} !important;`">{{
toFixed(n.v.v, n.v.ct)
}}</span>
@@ -2894,7 +2874,7 @@
>闄勪欢涓婁紶</el-button
>
</el-upload>
- <ValueTable
+ <!-- <ValueTable
class="value-table"
ref="fileList"
:url="$api.insOrderPlan.getFileList"
@@ -2902,7 +2882,7 @@
:delUrl="$api.insOrderPlan.delfile"
:key="upIndex"
style="height: 100%; margin-top: 16px"
- />
+ /> -->
</div>
<el-drawer title="鍏夌氦鍒囨崲" :visible.sync="fiberOpticVisible" :size="500">
<el-table
@@ -3115,11 +3095,11 @@
<el-tag
v-for="(item, i) in typeList"
:key="i"
- v-if="item.value == scope.row.insState"
- :type="item.type"
+ v-if="item.dictValue == scope.row.insState"
+ :type="item.listClass"
size="medium"
style="margin-right: 5px"
- >{{ item.label }}</el-tag
+ >{{ item.dictLabel }}</el-tag
>
</template>
</el-table-column>
@@ -3165,14 +3145,14 @@
</el-table>
</el-drawer>
<el-drawer title="浠诲姟鍒囨崲" :visible.sync="taskVisible" :size="500">
- <ValueTable
+ <!-- <ValueTable
class="value-table"
ref="insOrderPlan"
:url="$api.insOrderPlan.inspectionOrderDetailsTaskSwitching"
:componentData="componentData"
:key="upIndex"
style="height: 100%"
- />
+ /> -->
</el-drawer>
<el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="500px">
<div class="body" style="display: flex; padding: 10px" v-if="reviewDia">
@@ -3372,16 +3352,48 @@
</template>
<script>
+import {
+ doInsOrder,
+ upPlanUser2,
+ upPlanUser,
+ saveInsContext2,
+ getSagTemperatureProducts,
+ temCycle,
+ write,
+ getInsProduct,
+ getReportModel,
+ verifyPlan,
+ checkSubmitPlan,
+ getEquipName,
+ submitPlan,
+ saveInsContext,
+ downFile,
+} from "@/api/business/inspectionTask";
+import {
+ temDataAcquisition,
+ temDataAcquisition2,
+ determineWhetherToCollectData,
+ selectDeviceByCategory,
+} from "@/api/cnas/resourceDemand/device";
+import { getLaboratoryPersonList } from "@/api/system/user";
+import { getDicts } from "@/api/system/dict/data";
+import { selectDictDataByName } from "@/api/system/dict/type";
import limsTable from "@/components/Table/lims-table.vue";
import file from "@/utils/file";
import excelFunction from "@/utils/excelFountion";
+import { mapGetters } from "vuex";
+import { getToken } from "@/utils/auth";
export default {
- props: ["sonLaboratory", "orderId", "state", "inspectorList", "handover"],
components: {
limsTable,
},
data() {
return {
+ sonLaboratory: null,
+ orderId: null,
+ state: null,
+ inspectorList: [],
+ handover: [],
equipName: [],
insFibersId: null, //鍏夌氦甯d
insOrderState: null,
@@ -3410,7 +3422,6 @@
componentData: {
entity: {
sonLaboratory: null,
- userId: 0,
},
isIndex: false,
showSelect: false,
@@ -3498,7 +3509,6 @@
comparisonList: [],
excelMethodList: [],
equipOptions: [],
- userId: 0,
reviewLoading: false,
reviewDia: false,
noReason: "",
@@ -3750,20 +3760,23 @@
},
// 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
computed: {
+ ...mapGetters(["loginUserInfo"]),
headers() {
- return {
- token: sessionStorage.getItem("token"),
- };
+ return { Authorization: "Bearer " + getToken() };
},
action() {
- return this.javaApi + this.$api.insOrderPlan.uploadFile;
+ return this.javaApi + "/insOrderPlan/uploadFile";
},
},
created() {
- console.log("妫�楠屼汉鍛�---", this.inspectorList);
- this.componentData.entity.sonLaboratory = this.sonLaboratory;
- this.id = this.orderId;
- this.getUserInfo();
+ console.log(this.$route.params);
+ this.sonLaboratory = this.$route.params.sonLaboratory;
+ this.orderId = this.$route.params.orderId;
+ this.state = this.$route.params.state;
+ this.inspectorList = this.$route.params.inspectorList;
+ this.handover = this.$route.params.handover;
+ // this.componentData.entity.sonLaboratory = this.sonLaboratory;
+ this.id = this.$route.params.orderId;
},
mounted() {
this.getSonLaboratoryList();
@@ -3772,113 +3785,110 @@
this.getComparisonList();
this.getAuthorizedPerson();
this.scrollInit();
- this.getPower();
+ // this.getPower();
this.startWorker();
},
watch: {
// 鐩戝惉浠诲姟id锛岃幏鍙栦换鍔′俊鎭�
id(val) {
this.loading = true;
- this.$axios
- .post(this.$api.insOrderPlan.doInsOrder, {
- id: val,
- laboratory: this.sonLaboratory,
- })
+ doInsOrder({
+ id: val,
+ laboratory: this.sonLaboratory,
+ })
.then(async (res) => {
- this.insOrder = res.data.insOrder;
- this.insOrderState = res.data.insState;
- this.componentData0.entity.insOrderId = val;
- this.$refs.fileList.selectList();
- this.urgentList.forEach((m) => {
- if (m.value == this.insOrder.type) {
- this.insOrder.typeName = m.label;
+ if (res.code === 200) {
+ this.insOrder = res.data.insOrder;
+ this.insOrderState = res.data.insState;
+ this.componentData0.entity.insOrderId = val;
+ // this.$refs.fileList.selectList();
+ this.urgentList.forEach((m) => {
+ if (m.dictValue == this.insOrder.type) {
+ this.insOrder.typeName = m.dictLabel;
+ }
+ });
+ this.loading = false;
+ if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) {
+ return this.$message.error("璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�");
}
- });
- this.loading = false;
- if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) {
- return this.$message.error("璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�");
- }
- // 璧嬪�煎綋鍓嶆牱鍝佸垪琛�
- this.sampleProduct = res.data.sampleProduct;
- this.fileterSampleProducts = JSON.parse(
- JSON.stringify(res.data.sampleProduct)
- );
- this.currentSample = this.HaveJson(this.sampleProduct[0]);
- let insProduct = this.HaveJson(this.currentSample.insProduct);
- // 娓╁害銆佹箍搴﹁祴鍊�
- if (insProduct && insProduct.length > 0) {
- const filterList = insProduct.filter(
- (ele) => ele.temperature || ele.humidity
+ // 璧嬪�煎綋鍓嶆牱鍝佸垪琛�
+ this.sampleProduct = res.data.sampleProduct;
+ this.fileterSampleProducts = JSON.parse(
+ JSON.stringify(res.data.sampleProduct)
);
- if (filterList && filterList.length > 0) {
- let { temperature, humidity } = filterList[0];
- this.otherForm = {
- temperature: temperature ? temperature : null,
- humidity: humidity ? humidity : null,
- };
+ this.currentSample = this.HaveJson(this.sampleProduct[0]);
+ let insProduct = this.HaveJson(this.currentSample.insProduct);
+ // 娓╁害銆佹箍搴﹁祴鍊�
+ if (insProduct && insProduct.length > 0) {
+ const filterList = insProduct.filter(
+ (ele) => ele.temperature || ele.humidity
+ );
+ if (filterList && filterList.length > 0) {
+ let { temperature, humidity } = filterList[0];
+ this.otherForm = {
+ temperature: temperature ? temperature : null,
+ humidity: humidity ? humidity : null,
+ };
+ }
}
- }
- // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
- let list = await this.getCurrentProduct(this.currentSample.id, 0);
- console.log(888, list);
- if (list) {
- this.currentSample.insProduct = this.HaveJson(list);
- }
- // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
- this.param = {};
- this.changeType = 0;
- this.currentSample.insProduct.forEach((a, j) => {
- this.param[a.id] = {
- insValue: [],
- comValue: [],
- resValue: null,
- equipValue: [],
- equipName: [],
- insResult: null,
- };
- });
- this.determineWhetherToCollectData(); //鏄惁闇�瑕佹暟閲�
- this.getReportModel(this.currentSample.id); //鑾峰彇濂楃銆佸厜绾ゅ甫銆佸厜绾や俊鎭�
- if (this.currentSample.index == undefined)
- this.currentSample["index"] = 1;
- let bushing = this.currentSample.bushing;
- this.getTableLists(); //澶勭悊妯℃澘鍒楄〃淇℃伅
+ // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
+ let list = await this.getCurrentProduct(this.currentSample.id, 0);
+ console.log(888, list);
+ if (list) {
+ this.currentSample.insProduct = this.HaveJson(list);
+ }
+ // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
+ this.param = {};
+ this.changeType = 0;
+ this.currentSample.insProduct.forEach((a, j) => {
+ this.param[a.id] = {
+ insValue: [],
+ comValue: [],
+ resValue: null,
+ equipValue: [],
+ equipName: [],
+ insResult: null,
+ };
+ });
+ this.determineWhetherToCollectData(); //鏄惁闇�瑕佹暟閲�
+ this.getReportModel(this.currentSample.id); //鑾峰彇濂楃銆佸厜绾ゅ甫銆佸厜绾や俊鎭�
+ if (this.currentSample.index == undefined)
+ this.currentSample["index"] = 1;
+ let bushing = this.currentSample.bushing;
+ this.getTableLists(); //澶勭悊妯℃澘鍒楄〃淇℃伅
- this.componentData.currentId = val;
- this.currentKey = 1;
- // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁---涓嬮潰淇℃伅鏆傛椂鍙拷鐣�
- this.fiberOpticTape = [];
- this.currentFiberOpticTape = null;
- this.fiberOptic = [];
- this.currentFiberOptic = null;
- this.bushing = [];
- this.currentBushing = null;
- this.currentTab = null;
- if (bushing && bushing.length > 0) {
- this.bushing = bushing;
+ this.componentData.currentId = val;
+ this.currentKey = 1;
+ // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁---涓嬮潰淇℃伅鏆傛椂鍙拷鐣�
+ this.fiberOpticTape = [];
+ this.currentFiberOpticTape = null;
+ this.fiberOptic = [];
+ this.currentFiberOptic = null;
+ this.bushing = [];
+ this.currentBushing = null;
+ this.currentTab = null;
+ if (bushing && bushing.length > 0) {
+ this.bushing = bushing;
+ }
+ // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+ this.worker.postMessage(
+ JSON.stringify({
+ modelType: this.sampleProduct[0].model,
+ type: "saveData",
+ tableList: this.tableList,
+ param: this.param,
+ currentTable: this.currentTable,
+ })
+ );
}
- // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
- this.worker.postMessage(
- JSON.stringify({
- modelType: this.sampleProduct[0].model,
- type: "saveData",
- tableList: this.tableList,
- param: this.param,
- currentTable: this.currentTable,
- })
- );
+ })
+ .catch((error) => {
+ console.error(error);
});
},
// 鐩戝惉褰撳墠妯℃澘鍙樺寲
currentTable(val1, val0) {
if (val0 != null && val1 != val0) {
- // if(this.tableLists.find(m=>m.templateId==val1)&&(this.tableLists.find(m=>m.templateId==val1).templateName=='鎴愬搧缂嗘楠屽師濮嬭褰�')){
- // if(this.casing.length>0){
- // this.handleChange(this.casing[0].id,3)
- // }
- // return
- // }
- //76:鐤插姵璇曢獙妫�楠屽師濮嬭褰曚笉鎵ц涓嬮潰鐨勬搷浣�
if (this.changeType && this.changeType > 0) {
// 濡傛灉鏄厜绾ゃ�佸厜绾ゅ甫锛屽垯涓嶆墽琛屼笅闈㈡搷浣�
return;
@@ -3979,10 +3989,9 @@
});
},
getSonLaboratoryList() {
- this.$axios
- .post(this.$api.insOrderPlan.upPlanUser2, {
- orderId: this.orderId,
- })
+ upPlanUser2({
+ orderId: this.orderId,
+ })
.then((res) => {
if (res.code === 200 && res.data.length > 0) {
this.sonLaboratoryList = [];
@@ -3994,6 +4003,9 @@
});
this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
}
+ })
+ .catch((error) => {
+ console.error(error);
});
},
// 鍐呴儴浜ゆ帴
@@ -4015,19 +4027,20 @@
return;
}
this.loading = true;
- this.$axios
- .post(this.$api.insOrderPlan.upPlanUser, {
- orderId: this.orderId,
- userId: this.connect.connectPerson,
- sonLaboratory: this.connect.sonLaboratory,
- })
+ upPlanUser({
+ orderId: this.orderId,
+ userId: this.connect.connectPerson,
+ sonLaboratory: this.connect.sonLaboratory,
+ })
.then((res) => {
if (res.code === 200) {
- this.loading = false;
- this.$message.success("鎿嶄綔鎴愬姛");
+ if (res.code === 200) {
+ this.loading = false;
+ this.$message.success("鎿嶄綔鎴愬姛");
+ }
+ this.connectVisible = false;
+ this.$emit("goback");
}
- this.connectVisible = false;
- this.$emit("goback");
})
.catch((error) => {
console.error(error);
@@ -4250,25 +4263,16 @@
delete obj.model;
delete obj.methodS;
delete obj.sampleType;
- this.$axios
- .post(
- this.$api.insOrderPlan.saveInsContext2,
- {
- id: this.fatigueTestInfo.insProductResult
- ? this.fatigueTestInfo.insProductResult.id
- : "",
- insProductId: this.fatigueTestInfo.id,
- sampleId: this.currentSample.id,
- orderId: this.currentSample.insOrderId,
- insValue: JSON.stringify(obj),
- templateName: "鐤插姵璇曢獙",
- },
- {
- headers: {
- "Content-Type": "application/json",
- },
- }
- )
+ saveInsContext2({
+ id: this.fatigueTestInfo.insProductResult
+ ? this.fatigueTestInfo.insProductResult.id
+ : "",
+ insProductId: this.fatigueTestInfo.id,
+ sampleId: this.currentSample.id,
+ orderId: this.currentSample.insOrderId,
+ insValue: JSON.stringify(obj),
+ templateName: "鐤插姵璇曢獙",
+ })
.then((res) => {
if (res.code == 201) {
this.$message.error("淇濆瓨澶辫触");
@@ -4276,8 +4280,8 @@
}
this.$message.success("淇濆瓨鎴愬姛");
})
- .catch((err) => {
- console.log(err);
+ .catch((error) => {
+ console.error(error);
});
},
// 鐤插姵璇曢獙鐗规��---缁撴潫
@@ -4358,26 +4362,17 @@
let obj1 = {};
obj1.arr2 = this.powerCharacteristicsInfo.arr2;
obj1.arr3 = this.powerCharacteristicsInfo.arr3;
- this.$axios
- .post(
- this.$api.insOrderPlan.saveInsContext2,
- {
- id: this.powerCharacteristicsInfo.insProductResult
- ? this.powerCharacteristicsInfo.insProductResult.id
- : "",
- insProductId: this.powerCharacteristicsInfo.id,
- sampleId: this.currentSample.id,
- orderId: this.currentSample.insOrderId,
- insValue: JSON.stringify(obj0),
- comValue: JSON.stringify(obj1),
- templateName: "闃叉尟閿ゅ姛鐜囩壒鎬�",
- },
- {
- headers: {
- "Content-Type": "application/json",
- },
- }
- )
+ saveInsContext2({
+ id: this.powerCharacteristicsInfo.insProductResult
+ ? this.powerCharacteristicsInfo.insProductResult.id
+ : "",
+ insProductId: this.powerCharacteristicsInfo.id,
+ sampleId: this.currentSample.id,
+ orderId: this.currentSample.insOrderId,
+ insValue: JSON.stringify(obj0),
+ comValue: JSON.stringify(obj1),
+ templateName: "闃叉尟閿ゅ姛鐜囩壒鎬�",
+ })
.then((res) => {
if (res.code == 201) {
this.$message.error("淇濆瓨澶辫触");
@@ -4385,8 +4380,8 @@
}
this.$message.success("淇濆瓨鎴愬姛");
})
- .catch((err) => {
- console.log(err);
+ .catch((error) => {
+ console.error(error);
});
},
// 闃叉尟閿ゅ姛鐜囩壒鎬�---缁撴潫
@@ -4447,25 +4442,16 @@
}
}
obj.elasticityModulus = this.stressStrainInfo.elasticity;
- this.$axios
- .post(
- this.$api.insOrderPlan.saveInsContext2,
- {
- id: this.stressStrainInfo.insProductResult
- ? this.stressStrainInfo.insProductResult.id
- : "",
- sampleId: this.currentSample.id,
- orderId: this.currentSample.insOrderId,
- insProductId: this.stressStrainInfo.id,
- insValue: JSON.stringify(obj),
- templateName: "鏋剁┖鍦扮嚎搴斿姏搴斿彉",
- },
- {
- headers: {
- "Content-Type": "application/json",
- },
- }
- )
+ saveInsContext2({
+ id: this.stressStrainInfo.insProductResult
+ ? this.stressStrainInfo.insProductResult.id
+ : "",
+ sampleId: this.currentSample.id,
+ orderId: this.currentSample.insOrderId,
+ insProductId: this.stressStrainInfo.id,
+ insValue: JSON.stringify(obj),
+ templateName: "鏋剁┖鍦扮嚎搴斿姏搴斿彉",
+ })
.then((res) => {
if (res.code == 201) {
this.$message.error("淇濆瓨澶辫触");
@@ -4473,8 +4459,8 @@
}
this.$message.success("淇濆瓨鎴愬姛");
})
- .catch((err) => {
- console.log(err);
+ .catch((error) => {
+ console.error(error);
});
},
// 鍒犻櫎璁板綍
@@ -4507,23 +4493,6 @@
return;
}
this.stressStrainInfo.elasticity = e;
- // else {
- // this.$axios
- // .post(
- // this.$api.insOrderPlan.write2 +
- // "?id=" +
- // this.stressStrainInfo.id +
- // "&elasticityModulus=" +
- // e
- // )
- // .then((res) => {
- // if (res.code == 201) {
- // this.$message.error("淇濆瓨澶辫触");
- // return;
- // }
- // this.$message.success("宸蹭繚瀛�");
- // });
- // }
}
},
// 鏋剁┖瀵煎湴绾垮簲鍔涘簲鍙�---缁撴潫
@@ -4564,10 +4533,9 @@
)[0];
// 鑾峰彇璁惧鍒楄〃
this.getEquipOptions(true, obj.id);
- this.$axios
- .post(this.$api.insOrderPlan.getSagTemperatureProducts, {
- sampleId: this.currentSample.id,
- })
+ getSagTemperatureProducts({
+ sampleId: this.currentSample.id,
+ })
.then((res) => {
if (res.code == 201) return;
let { productVos, sampleVo } = res.data;
@@ -4677,7 +4645,9 @@
}
});
})
- .catch((err) => {});
+ .catch((error) => {
+ console.error(error);
+ });
},
// 淇濆瓨鏁版嵁
saveSageInfo(type, value) {
@@ -4765,23 +4735,13 @@
temperature = temperature + "鈩�";
}
this.dataAcquisitionLoading = true;
- this.$axios
- .post(
- this.$api.deviceScope.temDataAcquisition,
- {
- entrustCode: this.insOrder.entrustCode,
- sampleCode: this.currentSample.sampleCode,
- model: this.wareForm0.model,
- cycles: this.wareForm.inspectionItem,
- temperature: temperature,
- },
- {
- headers: {
- "Content-Type": "application/json",
- },
- noQs: true,
- }
- )
+ temDataAcquisition({
+ entrustCode: this.insOrder.entrustCode,
+ sampleCode: this.currentSample.sampleCode,
+ model: this.wareForm0.model,
+ cycles: this.wareForm.inspectionItem,
+ temperature: temperature,
+ })
.then((res) => {
this.dataAcquisitionLoading = false;
if (res.code != 200) {
@@ -4789,19 +4749,27 @@
}
// 璧嬪�煎洖鏄綪K8000鐨勬暟鎹�
this.wareFormChange();
+ })
+ .catch((error) => {
+ console.error(error);
});
} else {
const _than = this;
// 涓�鑸殑鏁版嵁閲囬泦
_than.dataAcquisitionLoading = true;
- let urlStr =
- this.$api.deviceScope.dataCollection +
- "?entrustCode=" +
- this.insOrder.entrustCode +
- "&sampleCode=" +
- this.currentSample.sampleCode +
- "&id=" +
- this.currentSample.id;
+ // let urlStr =
+ // this.$api.deviceScope.dataCollection +
+ // "?entrustCode=" +
+ // this.insOrder.entrustCode +
+ // "&sampleCode=" +
+ // this.currentSample.sampleCode +
+ // "&id=" +
+ // this.currentSample.id;
+ let data = {
+ entrustCode: this.insOrder.entrustCode,
+ sampleCode: this.currentSample.sampleCode,
+ id: this.currentSample.id,
+ };
console.log(_than.fibers);
if (_than.fibers && _than.fibers.length > 0) {
//褰撳墠閫変腑鐨勫厜绾ゅ甫
@@ -4811,25 +4779,31 @@
if (null == currentFibers || currentFibers.length == 0) {
currentFibers = _than.fibers[0];
}
- urlStr +=
- "&fiberOpticRibbon=" +
- currentFibers.bushingColor +
- "-" +
- currentFibers.code;
+ // urlStr +=
+ // "&fiberOpticRibbon=" +
+ // currentFibers.bushingColor +
+ // "-" +
+ // currentFibers.code;
+ data.fiberOpticRibbon =
+ currentFibers.bushingColor + "-" + currentFibers.code;
}
- let replaceUrlStr = urlStr
- .split("")
- .map((s) => s.replace("#", "%23"))
- .join("");
- this.$axios.get(replaceUrlStr).then((res) => {
- this.dataAcquisitionLoading = false;
- if (res.code != 200) {
- return;
- }
- this.dataAcquisitionInfoNew = this.HaveJson(res.data);
- // 瀵规暟閲囧洖鏉ョ殑鍊艰繘琛屽鐞�
- this.handleDataAcquisition(res.data);
- });
+ // let replaceUrlStr = urlStr
+ // .split("")
+ // .map((s) => s.replace("#", "%23"))
+ // .join("");
+ dataCollection(data)
+ .then((res) => {
+ this.dataAcquisitionLoading = false;
+ if (res.code != 200) {
+ return;
+ }
+ this.dataAcquisitionInfoNew = this.HaveJson(res.data);
+ // 瀵规暟閲囧洖鏉ョ殑鍊艰繘琛屽鐞�
+ this.handleDataAcquisition(res.data);
+ })
+ .catch((error) => {
+ console.error(error);
+ });
}
},
handleDataAcquisition(data) {
@@ -5185,7 +5159,6 @@
// 褰撳惊鐜鏁般�佹俯搴︾偣鍙樺寲銆丳K8000鏁伴噰鏃朵細璋冪敤锛屼富瑕佹槸鑾峰彇淇℃伅杩涜鍥炴樉
wareFormChange(m, type) {
if (
- this.PROJECT != "妫�娴嬩腑蹇�" ||
!this.tableLists.find((m) => m.templateId == this.currentTable) ||
this.tableLists.find((m) => m.templateId == this.currentTable)
.templateName != "娓╁害寰幆妫�楠屽師濮嬭褰�"
@@ -5202,11 +5175,10 @@
wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass + "鈩�";
}
this.wareTableDataLoading = true;
- this.$axios
- .post(this.$api.insOrderPlan.temCycle, {
- sampleId: this.currentSample.id,
- ...wareForm,
- })
+ temCycle({
+ sampleId: this.currentSample.id,
+ ...wareForm,
+ })
.then((res) => {
this.wareTableDataLoading = false;
if (res.code == 201) return;
@@ -5371,6 +5343,9 @@
});
// 杩欐槸椤甸潰鏈�缁堝憟鐜扮殑鏍煎紡
this.wareTableData = arr2;
+ })
+ .catch((error) => {
+ console.error(error);
});
// 鑾峰彇璁惧鍒楄〃
this.getEquipOptions(true, this.currentSample.insProduct[0].id);
@@ -5381,23 +5356,15 @@
// 寰幆娆℃暟鍒囨崲鏃惰皟鐢�
thermalCyclingChange() {
this.thermalCyclingLoading = true;
- this.$axios
- .post(this.$api.insOrderPlan.temCycle, {
- sampleId: this.currentSample.id,
- inspectionItem: this.thermalCyclingInfo.inspectionItem,
- })
+ temCycle({
+ sampleId: this.currentSample.id,
+ inspectionItem: this.thermalCyclingInfo.inspectionItem,
+ })
.then((res) => {
this.thermalCyclingLoading = false;
if (res.code == 201) return;
let { productVos, sampleVo } = res.data;
this.thermalCyclingInfo = { ...this.thermalCyclingInfo, ...sampleVo };
- // if(this.thermalCyclingInfo.inspectionItem>1){
- // for(let i in this.param){
- // if(this.param[i].inspectionItemSubclass){
- // delete this.param[i]
- // }
- // }
- // }
for (let i in this.param) {
if (this.param[i].inspectionItemSubclass) {
delete this.param[i];
@@ -5495,6 +5462,9 @@
}
// 鑾峰彇璁惧鍒楄〃
this.getEquipOptions(true, this.currentSample.insProduct[0].id);
+ })
+ .catch((error) => {
+ console.error(error);
});
},
// 娣诲姞妫�楠屽��
@@ -5785,27 +5755,17 @@
// 鍗曟牴鍨傜洿鐕冪儳---缁撴潫
// 淇濆瓨婀垮害銆佹俯搴︽暟鎹�
subOtherForm(m, type) {
- // let ids = []
- // for (let i in this.param) {
- // ids.push(i)
- // }
- this.$axios
- .post(
- this.$api.insOrderPlan.write,
- {
- [type]: Number(m),
- insOrderId: this.currentSample.insOrderId,
- },
- {
- headers: {
- "Content-Type": "application/json",
- },
- noQs: true,
- }
- )
+ write({
+ [type]: Number(m),
+ insOrderId: this.currentSample.insOrderId,
+ })
.then((res) => {
- if (res.code == 201) return;
- this.$message.success("淇濆瓨鎴愬姛");
+ if (res.code === 200) {
+ this.$message.success("淇濆瓨鎴愬姛");
+ }
+ })
+ .catch((error) => {
+ console.error(error);
});
},
// 鏉冮檺鑾峰彇
@@ -5837,29 +5797,28 @@
this.temDataAcquisition = temDataAcquisition;
},
uploadSample() {
- this.$axios
- .post(this.$api.insOrderPlan.doInsOrder, {
- id: this.id,
- laboratory: this.sonLaboratory,
+ doInsOrder({
+ id: this.id,
+ laboratory: this.sonLaboratory,
+ })
+ .then((res) => {
+ if (res.code === 200) {
+ this.sampleProduct = res.data.sampleProduct;
+ }
})
- .then(async (res) => {
- this.sampleProduct = res.data.sampleProduct;
+ .catch((error) => {
+ console.error(error);
});
},
// 鏍规嵁绫诲瀷銆佷换鍔d銆佸疄楠屽鏉ヨ幏鍙栨牱鍝佺殑妫�楠岄」淇℃伅
async getCurrentProduct(id, type) {
this.tableLoading = true;
- let res = await this.$axios.post(
- this.$api.insOrderPlan.getInsProduct +
- "?id=" +
- id +
- "&type=" +
- type +
- "&laboratory=" +
- this.sonLaboratory
- );
+ let res = await getInsProduct({
+ id: id,
+ type: type,
+ laboratory: this.sonLaboratory,
+ });
this.tableLoading = false;
- console.log("getCurrentProduct-->", res.data);
return res.data;
},
handleChangeBushing(row, column, event) {
@@ -5989,24 +5948,21 @@
},
// 鑾峰彇濂楃,鍏夌氦甯�,鍏夌氦鏁版嵁
getReportModel(id) {
- if (this.PROJECT != "妫�娴嬩腑蹇�") {
- return;
- }
this.getReportModelLoading = true;
- this.$axios
- .post(
- this.$api.insOrderPlan.getReportModel +
- "?sampleId=" +
- id +
- "&sonLaboratory=" +
- this.sonLaboratory,
- {}
- )
+ getReportModel({
+ sampleId: id,
+ sonLaboratory: this.sonLaboratory,
+ })
.then((res) => {
- this.getReportModelLoading = false;
- this.fibers = res.data["鍏夌氦甯�"];
- this.fiber = res.data["鍏夌氦"];
- this.casing = res.data["濂楃"];
+ if (res.code === 200) {
+ this.getReportModelLoading = false;
+ this.fibers = res.data["鍏夌氦甯�"];
+ this.fiber = res.data["鍏夌氦"];
+ this.casing = res.data["濂楃"];
+ }
+ })
+ .catch((error) => {
+ console.error(error);
});
},
// 濂楃,鍏夌氦甯�,鍏夌氦绛夊垏鎹�,瀵瑰簲鍘熷璁板綍妯℃澘涔熻鍒囨崲
@@ -6063,63 +6019,52 @@
},
// 瀛楀吀鑾峰彇淇℃伅
getTypeDicts() {
- this.$axios
- .post(this.$api.enums.selectEnumByCategory, {
- category: "绱ф�ョ▼搴�",
- })
+ getDicts("urgency_level")
.then((res) => {
- let data = res.data;
- data.forEach((ele) => {
- if (ele.value === "0") {
- ele.type = "success";
- } else if (ele.value === "1") {
- ele.type = "warning";
- } else if (ele.value === "2") {
- ele.type = "danger";
- }
- });
- this.urgentList = data;
- this.componentData.tagField.type.select = data;
- });
- this.$axios
- .post(this.$api.enums.selectEnumByCategory, {
- category: "杞借嵎",
+ if (res.code === 200) {
+ this.urgentList = res.data;
+ }
})
- .then((res) => {
- this.loadList = res.data;
+ .catch((error) => {
+ console.error(error);
});
+ // getDicts("").then(res=>{
+ // if(res.status===200){
+ // console.log(res)
+ // }
+ // }).catch(error=>{
+ // console.error(error)
+ // })
+ // this.$axios
+ // .post(this.$api.enums.selectEnumByCategory, {
+ // category: "杞借嵎",
+ // })
+ // .then((res) => {
+ // this.loadList = res.data;
+ // });
},
// 瀛楀吀鑾峰彇淇℃伅
getInsStateDicts() {
- this.$axios
- .post(this.$api.enums.selectEnumByCategory, {
- category: "妫�楠屼换鍔$姸鎬�",
- })
+ getDicts("inspection_task_state")
.then((res) => {
- let data = res.data;
- data.forEach((ele) => {
- //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
- if (["2", "5"].includes(ele.value)) {
- ele.type = "success";
- } else if (["1", "3"].includes(ele.value)) {
- ele.type = "warning";
- } else if (["0", "4"].includes(ele.value)) {
- ele.type = "danger";
- }
- });
- this.typeList = data;
- this.componentData.tagField.insState.select = data;
+ if (res.code === 200) {
+ this.typeList = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
});
},
// 瀛楀吀鑾峰彇淇℃伅
getComparisonList() {
- this.$axios
- .post(this.$api.enums.selectEnumByCategory, {
- category: "琛ㄦ牸鍧愭爣杞崲",
- })
+ getDicts("coordinate_transformation")
.then((res) => {
- let data = res.data;
- this.comparisonList = data;
+ if (res.code === 200) {
+ this.comparisonList = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
});
},
// 鑾峰彇妫�楠屽�间负涓嬫媺鏃剁殑涓嬫媺鍒楄〃
@@ -6128,12 +6073,14 @@
if (val === undefined || val === null) {
return;
}
- this.$axios
- .post(this.$api.enums.selectEnumByCategory, {
- category: val,
- })
+ selectDictDataByName(val)
.then((res) => {
- this.enumList = res.data;
+ if (res.code === 200) {
+ this.enumList = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
});
},
tableRowClassName({ row, rowIndex }) {
@@ -6247,23 +6194,18 @@
});
// 鍒濆鍖栭〉闈㈡暟鎹�
this.wareTableDataLoading = true;
- this.$axios
- .post(
- this.$api.deviceScope.temDataAcquisition2,
- {
- entrustCode: this.insOrder.entrustCode,
- sampleCode: this.currentSample.sampleCode,
- model: this.currentSample.model,
- },
- {
- headers: {
- "Content-Type": "application/json",
- },
- noQs: true,
- }
- )
+ temDataAcquisition2({
+ entrustCode: this.insOrder.entrustCode,
+ sampleCode: this.currentSample.sampleCode,
+ model: this.currentSample.model,
+ })
.then((res) => {
- this.wareFormChange();
+ if (res.code === 200) {
+ this.wareFormChange();
+ }
+ })
+ .catch((error) => {
+ console.error(error);
});
}
// 娓╁害寰幆妫�楠屽師濮嬭褰�---缁撴潫
@@ -6635,8 +6577,9 @@
conclusionList.forEach((n, i) => {
if (n.r == b.r && n.c == b.c) {
b.v.f = `(${
- this.comparisonList.find((j) => j.value == finalList[i].c)
- .label
+ this.comparisonList.find(
+ (j) => j.dictValue == finalList[i].c
+ ).dictLabel
}${finalList[i].r + 1})`;
}
});
@@ -6649,7 +6592,7 @@
}
});
// 浠ヤ笅鏄牱寮忓鐞嗛�昏緫
- set = Array.sort(set);
+ set = Array.from(set).sort((a, b) => a - b);
set.forEach((b) => {
let arr = [];
a.template.forEach((c) => {
@@ -6886,7 +6829,6 @@
},
// 妫�楠屽�艰緭鍏ュ悗瑙﹀彂鐨勫嚱鏁�
changeInput(m, code, n, getDataType) {
- console.log("---->999");
// 涓烘暟閲囧畾涔変竴涓�昏緫鍙傛暟
if (getDataType == "getDataType") {
this.getDataType = 2;
@@ -6895,17 +6837,15 @@
if (n) {
currentInsItemId = JSON.parse(JSON.stringify(n.i));
// 闇�瑕佺瀛﹁鏁版硶鐨勫彲浠ヨ蛋杩欓噷
- if (this.PROJECT === "妫�娴嬩腑蹇�") {
- if (
- this.currentSample.insProduct.find(
- (ele) =>
- ele.id == currentInsItemId && ele.inspectionItem == "浣撶Н鐢甸樆鐜�"
- )
- ) {
- if (parseFloat(n.v.v) >= 100000) {
- let num2 = new this.$Big(n.v.v);
- n.v.v = num2.toExponential();
- }
+ if (
+ this.currentSample.insProduct.find(
+ (ele) =>
+ ele.id == currentInsItemId && ele.inspectionItem == "浣撶Н鐢甸樆鐜�"
+ )
+ ) {
+ if (parseFloat(n.v.v) >= 100000) {
+ let num2 = new this.$Big(n.v.v);
+ n.v.v = num2.toExponential();
}
}
// 瀹氫箟涓�涓嚱鏁版潵楠岃瘉鍒嗘暟鏄惁鏈夋晥
@@ -6927,7 +6867,6 @@
excelMethodList: this.excelMethodList,
comparisonList: this.comparisonList,
currentSample: this.currentSample,
- PROJECT: this.PROJECT,
param: this.param,
currentTable: this.currentTable,
getDataTypeId: this.getDataTypeId,
@@ -6945,7 +6884,6 @@
switch (this.result.method) {
case "saveInsContext":
this.$nextTick(() => {
- // this.$delete(this.tableList[0],'arr')
this.$set(
this.tableList[0],
"arr",
@@ -6970,34 +6908,6 @@
}
}
this.saveInsContext(currentInsItemId);
- // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,鍙互鐩存帴淇濆瓨鏁版嵁
- // if(this.getDataType==2){
- // console.log("aaaaaa--->>>",currentInsItemId);
- // this.saveInsContext()
- // }else{
- // if(this.isGet&&!this.dataAcquisitionEidtAble){
- // // if(this.result.value.getDataTypeId==''){
- // // // 濡傛灉鏄暟閲囦笉鍙紪杈戣緭鍏ョ殑鎯呭喌,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁
- // // return
- // // }
- // // 淇濆瓨鏁版嵁
- // this.saveInsContext()
- // // setTimeout(()=>{
- // // },2000)
- // }else if(this.isGet&&this.dataAcquisitionEidtAble){
- // if(this.getDataType==1){
- // // if(this.result.value.getDataTypeId==''){
- // // // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁
- // // return
- // // }
- // this.saveInsContext()
- // }else{
- // this.saveInsContext()
- // }
- // }else{
- // this.saveInsContext()
- // }
- // }
});
break;
case "tableList":
@@ -7016,10 +6926,9 @@
},
// 鏄惁闇�瑕佹暟閲�
async determineWhetherToCollectData() {
- let res = await this.$axios.get(
- this.$api.deviceScope.determineWhetherToCollectData +
- "?managementNumber=''"
- );
+ let res = await determineWhetherToCollectData({
+ managementNumber: "",
+ });
this.isGet = res.data;
if (
this.currentSample.insProduct.filter(
@@ -7261,13 +7170,11 @@
if (e) {
this.equipOptions = [];
let product = this.currentSample.insProduct.find((m) => m.id == id);
- console.log(product);
- this.$axios
- .post(this.$api.deviceScope.selectDeviceByCategory, {
- inspectionItem: product.inspectionItem,
- inspectionItemSubclass: product.inspectionItemSubclass,
- sonLaboratory: product.sonLaboratory,
- })
+ selectDeviceByCategory({
+ inspectionItem: product.inspectionItem,
+ inspectionItemSubclass: product.inspectionItemSubclass,
+ sonLaboratory: product.sonLaboratory,
+ })
.then((res) => {
if (res.code === 200 && res.data) {
this.equipOptions = res.data.map((m) => {
@@ -7293,25 +7200,17 @@
}
}
},
- getUserInfo() {
- this.$axios.get(this.$api.user.getUserInfo).then((res) => {
- this.userId = res.data.id;
- this.componentData.entity.userId = res.data.id;
- // console.log(1111,this.userId)
- });
- },
// 澶嶆牳
upInsReview(e) {
if (e == 1) {
// 閫氳繃
this.reviewLoading = true;
- this.$axios
- .post(this.$api.insOrderPlan.verifyPlan, {
- orderId: this.orderId,
- type: 1,
- laboratory: this.sonLaboratory,
- tell: null,
- })
+ verifyPlan({
+ orderId: this.orderId,
+ type: 1,
+ laboratory: this.sonLaboratory,
+ tell: null,
+ })
.then((res) => {
if (res.code === 200) {
this.$message.success("鎿嶄綔鎴愬姛");
@@ -7331,13 +7230,12 @@
handleReviewDia() {
if (this.noReason) {
this.reviewLoading = true;
- this.$axios
- .post(this.$api.insOrderPlan.verifyPlan, {
- orderId: this.orderId,
- type: 0,
- laboratory: this.sonLaboratory,
- tell: this.noReason,
- })
+ verifyPlan({
+ orderId: this.orderId,
+ type: 0,
+ laboratory: this.sonLaboratory,
+ tell: this.noReason,
+ })
.then((res) => {
if (res.code === 200) {
this.$message.success("鎿嶄綔鎴愬姛");
@@ -7368,26 +7266,20 @@
}
this.addVerifyDia = false;
this.submitLoading = true;
- this.$axios
- .post(this.$api.insOrderPlan.checkSubmitPlan, {
- orderId: this.orderId,
- laboratory: this.sonLaboratory,
- humidity: this.otherForm.humidity,
- temperature: this.otherForm.temperature,
- })
+ checkSubmitPlan({
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ humidity: this.otherForm.humidity,
+ temperature: this.otherForm.temperature,
+ })
.then((res) => {
if (res.code === 200) {
if (!res.data || res.data.length == 0) {
- this.$axios
- .get(
- this.$api.insOrderPlan.getEquipName +
- "?orderId=" +
- this.orderId +
- "&sonLaboratory=" +
- this.sonLaboratory
- )
+ getEquipName({
+ orderId: this.orderId,
+ sonLaboratory: this.sonLaboratory,
+ })
.then((response) => {
- console.log(typeof response.data, response.data.length);
if (response.data.length > 0) {
let newData = [];
const h = this.$createElement;
@@ -7418,67 +7310,54 @@
type: "",
})
.then(() => {
- this.$axios
- .post(this.$api.insOrderPlan.submitPlan, {
- orderId: this.orderId,
- laboratory: this.sonLaboratory,
- verifyUser: this.verifyUser,
- entrustCode: this.insOrder.entrustCode,
- })
+ submitPlan({
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser,
+ entrustCode: this.insOrder.entrustCode,
+ })
.then((res) => {
if (res.code === 200) {
this.$message.success("鎿嶄綔鎴愬姛");
this.$emit("goback");
}
this.submitLoading = false;
+ })
+ .catch((error) => {
+ console.error(error);
});
})
.catch(() => {
this.submitLoading = false;
});
} else {
- this.$axios
- .post(this.$api.insOrderPlan.submitPlan, {
- orderId: this.orderId,
- laboratory: this.sonLaboratory,
- verifyUser: this.verifyUser,
- entrustCode: this.insOrder.entrustCode,
- })
+ submitPlan({
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser,
+ entrustCode: this.insOrder.entrustCode,
+ })
.then((res) => {
if (res.code === 200) {
this.$message.success("鎿嶄綔鎴愬姛");
this.$emit("goback");
}
this.submitLoading = false;
+ })
+ .catch((error) => {
+ console.error(error);
});
}
+ })
+ .catch((error) => {
+ console.error(error);
});
-
- // this.$axios
- // .post(this.$api.insOrderPlan.submitPlan, {
- // orderId: this.orderId,
- // laboratory: this.sonLaboratory,
- // verifyUser: this.verifyUser,
- // entrustCode: this.insOrder.entrustCode,
- // })
- // .then((res) => {
- // if (res.code === 200) {
- // this.$message.success("鎿嶄綔鎴愬姛");
- // this.$emit("goback");
- // }
- // this.submitLoading = false;
- // })
} else {
- this.$axios
- .get(
- this.$api.insOrderPlan.getEquipName +
- "?orderId=" +
- this.orderId +
- "&sonLaboratory=" +
- this.sonLaboratory
- )
+ getEquipName({
+ orderId: this.orderId,
+ sonLaboratory: this.sonLaboratory,
+ })
.then((response) => {
- console.log(typeof response.data, response.data.length);
if (response.data.length > 0) {
let newData = [];
const h = this.$createElement;
@@ -7550,12 +7429,11 @@
type: "",
})
.then(() => {
- this.$axios
- .post(this.$api.insOrderPlan.submitPlan, {
- orderId: this.orderId,
- laboratory: this.sonLaboratory,
- verifyUser: this.verifyUser,
- })
+ submitPlan({
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser,
+ })
.then((res) => {
if (res.code === 200) {
this.$message.success("鎿嶄綔鎴愬姛");
@@ -7613,12 +7491,11 @@
type: "",
})
.then(() => {
- this.$axios
- .post(this.$api.insOrderPlan.submitPlan, {
- orderId: this.orderId,
- laboratory: this.sonLaboratory,
- verifyUser: this.verifyUser,
- })
+ submitPlan({
+ orderId: this.orderId,
+ laboratory: this.sonLaboratory,
+ verifyUser: this.verifyUser,
+ })
.then((res) => {
if (res.code === 200) {
this.$message.success("鎿嶄綔鎴愬姛");
@@ -7632,66 +7509,10 @@
.catch(() => {});
this.submitLoading = false;
}
+ })
+ .catch((error) => {
+ console.error(error);
});
-
- // let newData = [];
- // const h = this.$createElement;
- // // 鍘婚噸涓嶅悎鏍煎鐞�
- // let set = new Set();
- // res.data.forEach((item) => {
- // if (!set.has(item)) {
- // set.add(item);
- // }
- // });
- // res.data = Array.from(set);
- // for (let i in res.data) {
- // const lastChar = res.data[i].slice(-1);
- // if (lastChar == "-") {
- // res.data[i] = res.data[i].slice(0, -1);
- // }
- // newData.push(
- // h(
- // "p",
- // { style: "font-size: 14px;color: red;" },
- // Number(i) + 1 + "銆�" + res.data[i]
- // )
- // );
- // }
- // newData.push(
- // h(
- // "p",
- // {
- // style:
- // "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
- // },
- // "浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�"
- // )
- // );
- // this.$confirm("鎻愮ず", {
- // title: "鎻愮ず",
- // message: h("div", null, newData),
- // confirmButtonText: "纭畾",
- // cancelButtonText: "鍙栨秷",
- // type: "",
- // })
- // .then(() => {
- // this.$axios
- // .post(this.$api.insOrderPlan.submitPlan, {
- // orderId: this.orderId,
- // laboratory: this.sonLaboratory,
- // verifyUser: this.verifyUser,
- // })
- // .then((res) => {
- // if (res.code === 200) {
- // this.$message.success("鎿嶄綔鎴愬姛");
- // this.$emit("goback");
- // }
- // })
- // .catch((error) => {
- // console.error(error);
- // });
- // })
- // .catch(() => {});
}
}
this.submitLoading = false;
@@ -7704,7 +7525,6 @@
},
// 缁熶竴鍦ㄨ繖閲屼繚瀛樻暟鎹�
saveInsContext(currentInsItemId, isDelete = false) {
- // console.log("saveInsContext-->",this.param);
try {
if (this.param) {
let param = null;
@@ -7713,22 +7533,23 @@
} else {
param = this.param;
}
- console.log("param-->", param);
- this.$axios
- .post(this.$api.insOrderPlan.saveInsContext, {
- param: JSON.stringify(param),
- currentTable: this.currentTable,
- sampleId: this.currentSample.id,
- orderId: this.orderId,
- sonLaboratory: this.sonLaboratory,
- isDelete: isDelete,
- })
+ saveInsContext({
+ param: param,
+ currentTable: this.currentTable,
+ sampleId: this.currentSample.id,
+ orderId: this.orderId,
+ sonLaboratory: this.sonLaboratory,
+ isDelete: isDelete,
+ })
.then((res) => {
if (res.code == 201) {
this.$message.error("淇濆瓨澶辫触");
return;
}
this.$message.success("宸蹭繚瀛�");
+ })
+ .catch((error) => {
+ console.error(error);
});
// 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
this.worker.postMessage(
@@ -7846,19 +7667,15 @@
//this.saveInsContext(ids[i]);
},
getAuthorizedPerson() {
- this.$axios.get(this.$api.user.getLaboratoryPersonList).then((res) => {
- // let data = []
- // // let userName = JSON.parse(localStorage.getItem("user")).name;
- // res.data.forEach(a => {
- // if(!this.inspectorList.includes(a.name)) {
- // data.push({
- // label: a.name,
- // value: a.id
- // })
- // }
- // })
- this.personList = res.data;
- });
+ getLaboratoryPersonList()
+ .then((res) => {
+ if (res.code === 200) {
+ this.personList = res.data;
+ }
+ })
+ .catch((error) => {
+ console.error(error);
+ });
},
scrollInit() {
// 鑾峰彇瑕佺粦瀹氫簨浠剁殑鍏冪礌
@@ -8040,10 +7857,9 @@
this.$refs.upload.clearFiles();
},
handleDown(row) {
- this.$axios
- .post(this.$api.insOrderPlan.downFile, {
- id: row.id,
- })
+ downFile({
+ id: row.id,
+ })
.then((res) => {
if (res.code === 200) {
let url = "";
@@ -8059,7 +7875,9 @@
}
}
})
- .catch((error) => {});
+ .catch((error) => {
+ console.error(error);
+ });
},
/**
* 灏嗘暟鍊紇淇濈暀ct.fa涓�'##'鍚庣殑鎸囧畾灏忔暟浣嶆暟锛屽苟杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆銆�
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 329d4e4..26c8223 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -211,7 +211,7 @@
</span>
</el-dialog>
<el-dialog title="妫�楠屼氦鎺�" :visible.sync="connectVisible" width="400px">
- <div class="search_thing">
+ <div class="search_thing" style="width: 100%">
<div class="search_label" style="width: 90px">
<span class="required-span">* </span>浜ゆ帴浜哄憳锛�
</div>
@@ -241,7 +241,7 @@
</el-select>
</div>
</div>
- <div class="search_thing">
+ <div class="search_thing" style="width: 100%">
<div class="search_label" style="width: 90px">
<span class="required-span">* </span>璇曢獙瀹わ細
</div>
@@ -269,9 +269,6 @@
>
</span>
</el-dialog>
- <div style="width: 100%; height: 100%" v-if="activeFace > 0">
- <Add :active="activeFace" :currentId="currentId" :examine="examine" />
- </div>
<Inspection
v-if="state > 0"
@goback="goback"
@@ -288,14 +285,14 @@
width="100%"
fullscreen
>
- <!-- <div
+ <div
style="width: 100%; text-align: right; margin-bottom: 10px"
v-if="premissionReviewFun()"
>
<el-button type="primary" size="small" @click="goReview(currentRow)"
>鍓嶅線澶嶆牳</el-button
>
- </div> -->
+ </div>
<lims-table
ref="dataLookTable"
highlightCurrentRow
@@ -741,6 +738,17 @@
},
computed: {
...mapGetters(["permissions", "nickName"]),
+ title() {
+ return this.selectTab + "妫�楠岀粨鏋滄樉绀�";
+ },
+ isLeader() {
+ const power = JSON.parse(sessionStorage.getItem("power"));
+ if (power) {
+ const filterList = power.filter((ele) => ele.menuMethod == "leader");
+ return filterList.length > 0;
+ }
+ return false;
+ },
},
data() {
return {
@@ -895,7 +903,7 @@
row.userName == null ||
row.insState == 3 ||
row.insState == 5 ||
- (row.userName && !row.userName.includes(this.nickName))
+ (row.userName && !this.hasExistUserName(row.userName))
);
},
},
@@ -911,7 +919,7 @@
row.insState == 5 ||
row.insState == 3 ||
(row.userName &&
- !row.userName.includes(this.nickName) &&
+ !this.hasExistUserName(row.userName) &&
!this.isLeader)
);
},
@@ -926,7 +934,7 @@
return (
row.userName == null ||
row.insState != 3 ||
- (row.checkName && !row.checkName.includes(this.nickName))
+ (row.checkName && !this.hasExistUserName(row.userName))
);
},
},
@@ -1313,20 +1321,11 @@
});
},
},
- computed: {
- title() {
- return this.selectTab + "妫�楠岀粨鏋滄樉绀�";
- },
- isLeader() {
- const power = JSON.parse(sessionStorage.getItem("power"));
- if (power) {
- const filterList = power.filter((ele) => ele.menuMethod == "leader");
- return filterList.length > 0;
- }
- return false;
- },
- },
methods: {
+ //鍒ゆ柇妫�楠屼汉涓槸鍚﹀寘鍚綋鍓嶇敤鎴�
+ hasExistUserName(userName) {
+ return userName.includes(this.nickName);
+ },
pagination({ page, limit }) {
this.page.current = page;
this.page.size = limit;
@@ -1876,9 +1875,20 @@
inspectorList = row.userName.split(",");
}
inspectorList.push(this.nickName);
- this.inspectorList = inspectorList;
- this.state = 1;
- this.orderId = row.id;
+ this.$router.push({
+ name: "inspection",
+ params: {
+ inspectorList: inspectorList,
+ state: 1,
+ orderId: row.id,
+ sonLaboratory: this.queryParams.sonLaboratory,
+ handover: this.personList,
+ },
+ });
+
+ // this.inspectorList = inspectorList;
+ // this.state = 1;
+ // this.orderId = row.id;
},
handleConnect(row) {
this.orderId = row.id;
diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index a467c0b..a74d08e 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -67,21 +67,21 @@
overflow: hidden;
}
->>>.el-table__body-wrapper {
+>>> .el-table__body-wrapper {
height: calc(100% - 46px) !important;
}
->>>.header-class {
+>>> .header-class {
height: 40px !important;
}
->>>.header-class th.el-table__cell>.cell {
+>>> .header-class th.el-table__cell > .cell {
line-height: 20px !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
->>>.el-table__row {
+>>> .el-table__row {
height: 35px !important;
}
@@ -115,16 +115,16 @@
right: 70px;
}
->>>.is-disabled .el-textarea__inner {
+>>> .is-disabled .el-textarea__inner {
background: rgba(0, 0, 0, 0.05) !important;
}
->>>.is-disabled .el-textarea__inner {
+>>> .is-disabled .el-textarea__inner {
background: rgba(0, 0, 0, 0.05) !important;
}
->>>.el-table__body-wrapper::-webkit-scrollbar {
- height: 14px;
+>>> .el-table__body-wrapper::-webkit-scrollbar {
+ height: 6px;
/* 璁剧疆婊氬姩鏉″搴� */
}
</style>
@@ -135,7 +135,10 @@
border-radius: 2px;
}
-.standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+.standard
+ .el-tree--highlight-current
+ .el-tree-node.is-current
+ > .el-tree-node__content {
color: #3a7bfa;
}
@@ -186,38 +189,81 @@
<div class="left">
<el-row>
<el-col :span="20">
- <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" suffix-icon="el-icon-search" v-model="search" size="small"
- style="margin-bottom: 5px" clearable @blur="searchFilter" @clear="searchFilter"></el-input>
+ <el-input
+ placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�"
+ suffix-icon="el-icon-search"
+ v-model="search"
+ size="small"
+ style="margin-bottom: 5px"
+ clearable
+ @blur="searchFilter"
+ @clear="searchFilter"
+ ></el-input>
</el-col>
- <el-col :span="4" style="text-align: center; line-height: 30px" v-if="addPower">
- <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button>
+ <el-col
+ :span="4"
+ style="text-align: center; line-height: 30px"
+ v-if="addPower"
+ >
+ <el-button
+ type="primary"
+ icon="el-icon-plus"
+ size="mini"
+ circle
+ @click="addDia = true"
+ ></el-button>
</el-col>
</el-row>
- <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label"
- :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current v-loading="treeLoad"
- :expand-on-click-node="false" :default-expanded-keys="expandedKeys" style="
+ <el-tree
+ :data="list"
+ ref="tree"
+ :props="{ children: 'children', label: 'label' }"
+ node-key="label"
+ :filter-node-method="filterNode"
+ @node-click="handleNodeClick"
+ highlight-current
+ v-loading="treeLoad"
+ :expand-on-click-node="false"
+ :default-expanded-keys="expandedKeys"
+ style="
height: calc(100% - 30px);
overflow-y: scroll;
scrollbar-width: none;
- ">
+ "
+ >
<div class="custom-tree-node" slot-scope="{ node, data }">
<el-row style="width: 100%">
- <el-col :span="21" :class="{ sort: node.level > 3 }" :title="data.label" style="text-align: left">
+ <el-col
+ :span="21"
+ :class="{ sort: node.level > 3 }"
+ :title="data.label"
+ style="text-align: left"
+ >
<span>
- <i :class="`node_i ${data.children != undefined
- ? data.code === '[1]'
- ? 'el-icon-folder-opened'
- : 'el-icon-folder'
- : 'el-icon-tickets'
- }`"></i>
+ <i
+ :class="`node_i ${
+ data.children != undefined
+ ? data.code === '[1]'
+ ? 'el-icon-folder-opened'
+ : 'el-icon-folder'
+ : 'el-icon-tickets'
+ }`"
+ ></i>
{{ data.label }}
</span>
</el-col>
- <el-col :span="2" style="text-align: right" v-if="
- (node.data.children === null ||
- node.data.children === undefined)
- ">
- <el-button type="text" size="mini" @click.stop="remove(node, data)">
+ <el-col
+ :span="2"
+ style="text-align: right"
+ v-if="
+ node.data.children === null || node.data.children === undefined
+ "
+ >
+ <el-button
+ type="text"
+ size="mini"
+ @click.stop="remove(node, data)"
+ >
<i class="el-icon-delete"></i>
</el-button>
</el-col>
@@ -230,98 +276,246 @@
<el-col :span="20" style="font-size: 14px; color: #999">{{
selectTree
}}</el-col>
- <el-button size="small" type="primary" style="position: absolute; right: 100px; top: 1px"
- @click="uploadDia = true" v-if="inExcelOfTreePower">瀵煎叆</el-button>
- <el-button size="small" type="primary" @click="handleMore" style="position: absolute; right: 5px; top: 1px"
- v-if="upStandardProduct">鎵归噺缂栬緫</el-button>
+ <el-button
+ size="small"
+ type="primary"
+ style="position: absolute; right: 100px; top: 1px"
+ @click="uploadDia = true"
+ v-if="inExcelOfTreePower"
+ >瀵煎叆</el-button
+ >
+ <el-button
+ size="small"
+ type="primary"
+ @click="handleMore"
+ style="position: absolute; right: 5px; top: 1px"
+ v-if="upStandardProduct"
+ >鎵归噺缂栬緫</el-button
+ >
</el-row>
<el-row class="standard_table" v-loading="tableLoad">
- <el-table class="el-table" :data="standardList" style="width: 100%; height: 220px !important" height="220"
- tooltip-effect="dark" highlight-current-row @row-click="rowClick" ref="standard"
- header-row-class-name="header-class">
- <el-table-column prop="code" label="鏍囧噯缂栧彿" show-overflow-tooltip width="200">
+ <el-table
+ class="el-table"
+ :data="standardList"
+ style="width: 100%; height: 220px !important"
+ height="220"
+ tooltip-effect="dark"
+ highlight-current-row
+ @row-click="rowClick"
+ ref="standard"
+ header-row-class-name="header-class"
+ >
+ <el-table-column
+ prop="code"
+ label="鏍囧噯缂栧彿"
+ show-overflow-tooltip
+ width="200"
+ >
<template slot-scope="scope">
<span style="color: red; font-size: 14px">{{
scope.row["code"]
}}</span>
</template>
</el-table-column>
- <el-table-column prop="name" label="鏍囧噯鍚嶇О" show-overflow-tooltip></el-table-column>
- <el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip></el-table-column>
+ <el-table-column
+ prop="name"
+ label="鏍囧噯鍚嶇О"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="remark"
+ label="澶囨敞"
+ show-overflow-tooltip
+ ></el-table-column>
</el-table>
</el-row>
<el-row class="product_table" v-loading="tableLoad2">
- <el-table :data="productList" ref="productTable" style="width: 100%" height="100%" tooltip-effect="dark" stripe
- :fit="true" border @selection-change="handleSelectionChange" :row-class-name="tableRowClassName"
- @select="upProductSelect" @select-all="handleAll" class="productTable" header-row-class-name="header-class">
+ <el-table
+ :data="productList"
+ ref="productTable"
+ style="width: 100%"
+ height="100%"
+ tooltip-effect="dark"
+ stripe
+ :fit="true"
+ border
+ @selection-change="handleSelectionChange"
+ :row-class-name="tableRowClassName"
+ @select="upProductSelect"
+ @select-all="handleAll"
+ class="productTable"
+ header-row-class-name="header-class"
+ >
<el-table-column type="selection" width="50"> </el-table-column>
- <el-table-column prop="sample" label="浜у搧" min-width="100" show-overflow-tooltip></el-table-column>
- <el-table-column prop="model" label="鍨嬪彿" min-width="100" show-overflow-tooltip></el-table-column>
- <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
+ <el-table-column
+ prop="sample"
+ label="浜у搧"
+ min-width="100"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="model"
+ label="鍨嬪彿"
+ min-width="100"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="inspectionItem"
+ label="妫�楠岄」"
+ min-width="140"
+ show-overflow-tooltip
+ ></el-table-column>
<!-- <el-table-column prop="inspectionItemClassify" label="妫�楠岄」绫诲瀷" width="120" show-overflow-tooltip></el-table-column> -->
- <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
- show-overflow-tooltip></el-table-column>
- <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip></el-table-column>
+ <el-table-column
+ prop="inspectionItemSubclass"
+ label="妫�楠岄」瀛愰」"
+ min-width="140"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="sonLaboratory"
+ label="瀛愬疄楠屽"
+ width="130"
+ show-overflow-tooltip
+ ></el-table-column>
<el-table-column prop="ask" label="瑕佹眰鍊�" min-width="200px">
<template slot-scope="scope">
- <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable
- @change="(value) => upStandardProductList(value, scope.row.id)" v-if="upStandardProduct" type="textarea"
- :autosize="{ minRows: 1, maxRows: 3 }"></el-input>
+ <el-input
+ size="small"
+ placeholder="瑕佹眰鍊�"
+ v-model="scope.row.ask"
+ clearable
+ @change="(value) => upStandardProductList(value, scope.row.id)"
+ v-if="upStandardProduct"
+ type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3 }"
+ ></el-input>
<span v-else>{{ scope.row.ask }}</span>
</template>
</el-table-column>
<el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px">
<template slot-scope="scope">
- <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable @change="(value) => upStandardProductListOfTell(value, scope.row.id)
- " v-if="upStandardProduct" type="textarea" :autosize="{ minRows: 1, maxRows: 3 }"></el-input>
+ <el-input
+ size="small"
+ placeholder="瑕佹眰鎻忚堪"
+ v-model="scope.row.tell"
+ clearable
+ @change="
+ (value) => upStandardProductListOfTell(value, scope.row.id)
+ "
+ v-if="upStandardProduct"
+ type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3 }"
+ ></el-input>
<span v-else>{{ scope.row.ask }}</span>
</template>
</el-table-column>
<el-table-column prop="method" label="璇曢獙鏂规硶" width="200">
<template slot-scope="scope">
- <el-select v-model="scope.row.methodS" size="small" placeholder="璇曢獙鏂规硶" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id)
- " v-if="upStandardProduct">
- <el-option v-for="(a, i) in JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option>
+ <el-select
+ v-model="scope.row.methodS"
+ size="small"
+ placeholder="璇曢獙鏂规硶"
+ @change="
+ (value) => upStandardProductListOfMethodS(value, scope.row.id)
+ "
+ v-if="upStandardProduct"
+ >
+ <el-option
+ v-for="(a, i) in JSON.parse(scope.row.method)"
+ :key="i"
+ :label="a"
+ :value="a"
+ ></el-option>
</el-select>
<span v-else>{{ scope.row.methodS }}</span>
</template>
</el-table-column>
- <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column
+ prop="unit"
+ label="璁¢噺鍗曚綅"
+ width="100"
+ show-overflow-tooltip
+ ></el-table-column>
<el-table-column prop="price" label="鍗曚环(鍏�)" width="120">
<template slot-scope="scope">
- <el-input v-model="scope.row.price" size="small" placeholder="鍗曚环(鍏�)" @change="(value) => upStandardProductListOfPrice(value, scope.row.id)
- " v-if="upStandardProduct">
+ <el-input
+ v-model="scope.row.price"
+ size="small"
+ placeholder="鍗曚环(鍏�)"
+ @change="
+ (value) => upStandardProductListOfPrice(value, scope.row.id)
+ "
+ v-if="upStandardProduct"
+ >
</el-input>
<span v-else>{{ scope.row.price }}</span>
</template>
</el-table-column>
<el-table-column prop="manHour" label="宸ユ椂绯绘暟" width="120">
<template slot-scope="scope">
- <el-input v-model="scope.row.manHour" size="small" placeholder="宸ユ椂绯绘暟" @change="(value) => upStandardProductListOfManHour(value, scope.row.id)
- " v-if="upStandardProduct">
+ <el-input
+ v-model="scope.row.manHour"
+ size="small"
+ placeholder="宸ユ椂绯绘暟"
+ @change="
+ (value) => upStandardProductListOfManHour(value, scope.row.id)
+ "
+ v-if="upStandardProduct"
+ >
</el-input>
<span v-else>{{ scope.row.manHour }}</span>
</template>
</el-table-column>
- <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column
+ prop="manHourGroup"
+ label="宸ユ椂鍒嗙粍"
+ width="100"
+ show-overflow-tooltip
+ ></el-table-column>
<el-table-column prop="templateId" label="妯℃澘" width="200">
<template slot-scope="scope">
- <el-select v-model="scope.row.templateId" size="small" filterable :disabled="!upStandardProduct" @change="(value) =>
- upStandardProductListOfTemplate(value, scope.row.id)
- ">
- <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
+ <el-select
+ v-model="scope.row.templateId"
+ size="small"
+ filterable
+ :disabled="!upStandardProduct"
+ @change="
+ (value) =>
+ upStandardProductListOfTemplate(value, scope.row.id)
+ "
+ >
+ <el-option
+ v-for="(a, ai) in templateList"
+ :key="ai"
+ :label="a.name"
+ :value="a.id"
+ ></el-option>
</el-select>
</template>
</el-table-column>
- <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column>
+ <el-table-column
+ prop="section"
+ label="鍖洪棿"
+ width="120"
+ show-overflow-tooltip
+ ></el-table-column>
<el-table-column prop="section" label="鎿嶄綔" width="120">
<template slot-scope="scope">
- <el-button type="text" @click="sectionUp(scope.row)">鍖洪棿璁剧疆</el-button>
+ <el-button type="text" @click="sectionUp(scope.row)"
+ >鍖洪棿璁剧疆</el-button
+ >
</template>
</el-table-column>
</el-table>
- <el-pagination style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange"
- :current-page="currentPage" layout="total, prev, pager, next, jumper" :page-size="50" :total="total">
+ <el-pagination
+ style="position: absolute; right: 16px; bottom: 1px"
+ @current-change="handleCurrentChange"
+ :current-page="currentPage"
+ layout="total, prev, pager, next, jumper"
+ :page-size="50"
+ :total="total"
+ >
</el-pagination>
</el-row>
</div>
@@ -356,150 +550,358 @@
<span class="required-span">* </span>鍨嬪彿锛�
</el-col>
<el-col :span="16" :offset="1">
- <el-input v-model="addOb.model" placeholder="璇疯緭鍏ュ瀷鍙�" clearable size="small"
- @keyup.enter.native="addStandardTree"></el-input>
+ <el-input
+ v-model="addOb.model"
+ placeholder="璇疯緭鍏ュ瀷鍙�"
+ clearable
+ size="small"
+ @keyup.enter.native="addStandardTree"
+ ></el-input>
</el-col>
</el-row>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addDia = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="addStandardTree" :loading="addLoad">纭� 瀹�</el-button>
+ <el-button type="primary" @click="addStandardTree" :loading="addLoad"
+ >纭� 瀹�</el-button
+ >
</span>
</el-dialog>
- <el-dialog title="鎵归噺缂栬緫" top="5vh" :visible.sync="moreEdit" width="90%" class="more-edit">
- <div class="body" style="display: flex; flex-direction: column; height: 85vh">
+ <el-dialog
+ title="鎵归噺缂栬緫"
+ top="5vh"
+ :visible.sync="moreEdit"
+ width="90%"
+ class="more-edit"
+ >
+ <div
+ class="body"
+ style="display: flex; flex-direction: column; height: 85vh"
+ >
<div class="search">
<div class="search-item">
<el-row style="width: 25%; margin-bottom: 16px">
<el-col :span="6" style="text-align: right">
<!-- <span class="required-span">* </span> -->
- 瑕佹眰鍊硷細</el-col>
+ 瑕佹眰鍊硷細</el-col
+ >
<el-col :span="16">
- <el-input size="small" v-model="moreInfo.ask" clearable :disabled="moreSelects.length == 0"></el-input>
+ <el-input
+ size="small"
+ v-model="moreInfo.ask"
+ clearable
+ :disabled="moreSelects.length == 0"
+ ></el-input>
</el-col>
</el-row>
<el-row style="width: 25%; margin-bottom: 16px">
<el-col :span="6" style="text-align: right">
<!-- <span class="required-span">* </span> -->
- 瑕佹眰鎻忚堪锛�</el-col>
- <el-col :span="16" style="display: flex; align-items: flex-start; height: 100%">
- <el-input size="small" clearable type="textarea" :autosize="{ minRows: 1, maxRows: 3 }"
- v-model="moreInfo.tell" :disabled="moreSelects.length == 0"></el-input>
+ 瑕佹眰鎻忚堪锛�</el-col
+ >
+ <el-col
+ :span="16"
+ style="display: flex; align-items: flex-start; height: 100%"
+ >
+ <el-input
+ size="small"
+ clearable
+ type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3 }"
+ v-model="moreInfo.tell"
+ :disabled="moreSelects.length == 0"
+ ></el-input>
</el-col>
</el-row>
<el-row style="width: 25%; margin-bottom: 16px">
<el-col :span="6" style="text-align: right">
<!-- <span class="required-span">* </span> -->
- 璇曢獙鏂规硶锛�</el-col>
+ 璇曢獙鏂规硶锛�</el-col
+ >
<el-col :span="16">
- <el-select v-model="moreInfo.methodS" size="small" filterable style="width: 100%"
- :disabled="moreSelects.length == 0" clearable>
- <el-option v-for="(a, ai) in methodList" :key="ai" :label="a.label" :value="a.value"></el-option>
+ <el-select
+ v-model="moreInfo.methodS"
+ size="small"
+ filterable
+ style="width: 100%"
+ :disabled="moreSelects.length == 0"
+ clearable
+ >
+ <el-option
+ v-for="(a, ai) in methodList"
+ :key="ai"
+ :label="a.label"
+ :value="a.value"
+ ></el-option>
</el-select>
</el-col>
</el-row>
<el-row style="width: 25%; margin-bottom: 16px">
<el-col :span="6" style="text-align: right">
<!-- <span class="required-span">* </span> -->
- 鍗曚环(鍏�)锛�</el-col>
+ 鍗曚环(鍏�)锛�</el-col
+ >
<el-col :span="16">
- <el-input size="small" v-model="moreInfo.price" clearable
- :disabled="moreSelects.length == 0"></el-input>
+ <el-input
+ size="small"
+ v-model="moreInfo.price"
+ clearable
+ :disabled="moreSelects.length == 0"
+ ></el-input>
</el-col>
</el-row>
<el-row style="width: 25%">
<el-col :span="6" style="text-align: right">
<!-- <span class="required-span">* </span> -->
- 宸ユ椂绯绘暟锛�</el-col>
+ 宸ユ椂绯绘暟锛�</el-col
+ >
<el-col :span="16">
- <el-input size="small" v-model="moreInfo.manHour" clearable
- :disabled="moreSelects.length == 0"></el-input>
+ <el-input
+ size="small"
+ v-model="moreInfo.manHour"
+ clearable
+ :disabled="moreSelects.length == 0"
+ ></el-input>
</el-col>
</el-row>
<el-row style="width: 25%">
<el-col :span="6" style="text-align: right">
<!-- <span class="required-span">* </span> -->
- 妯℃澘锛�</el-col>
+ 妯℃澘锛�</el-col
+ >
<el-col :span="16">
- <el-select v-model="moreInfo.templateId" size="small" filterable placeholder="妯℃澘" style="width: 100%"
- :disabled="moreSelects.length == 0">
- <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
+ <el-select
+ v-model="moreInfo.templateId"
+ size="small"
+ filterable
+ placeholder="妯℃澘"
+ style="width: 100%"
+ :disabled="moreSelects.length == 0"
+ >
+ <el-option
+ v-for="(a, ai) in templateList"
+ :key="ai"
+ :label="a.name"
+ :value="a.id"
+ ></el-option>
</el-select>
</el-col>
</el-row>
<el-row style="width: 25%">
<el-col :span="6" style="text-align: right"> 鏄惁鍚敤锛�</el-col>
<el-col :span="16">
- <el-select v-model="moreInfo.state" size="small" filterable placeholder="鏄惁鍚敤" style="width: 100%"
- :disabled="moreSelects.length == 0" clearable>
+ <el-select
+ v-model="moreInfo.state"
+ size="small"
+ filterable
+ placeholder="鏄惁鍚敤"
+ style="width: 100%"
+ :disabled="moreSelects.length == 0"
+ clearable
+ >
<el-option label="鍚敤" :value="1"></el-option>
<el-option label="涓嶅惎鐢�" :value="0"></el-option>
</el-select>
</el-col>
</el-row>
<el-row style="width: 100%; margin-top: 8px">
- <el-col :span="24" style="display: flex; align-items: center; justify-content: flex-end">
- <el-button @click="clearProduct(1)" size="small" type="danger">閲嶇疆鍗曚环</el-button>
- <el-button @click="clearProduct(2)" size="small" type="danger">閲嶇疆宸ユ椂绯绘暟</el-button>
- <el-button type="primary" size="small" @click="sectionUp(moreSelects)">璁剧疆鍖洪棿</el-button>
- <el-button @click="moreEdit = false" size="small">鍙� 娑�</el-button>
- <el-button type="primary" @click="subMoreEdit" :loading="moreEditLoad" size="small">淇� 瀛�</el-button>
+ <el-col
+ :span="24"
+ style="
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ "
+ >
+ <el-button @click="clearProduct(1)" size="small" type="danger"
+ >閲嶇疆鍗曚环</el-button
+ >
+ <el-button @click="clearProduct(2)" size="small" type="danger"
+ >閲嶇疆宸ユ椂绯绘暟</el-button
+ >
+ <el-button
+ type="primary"
+ size="small"
+ @click="sectionUp(moreSelects)"
+ >璁剧疆鍖洪棿</el-button
+ >
+ <el-button @click="moreEdit = false" size="small"
+ >鍙� 娑�</el-button
+ >
+ <el-button
+ type="primary"
+ @click="subMoreEdit"
+ :loading="moreEditLoad"
+ size="small"
+ >淇� 瀛�</el-button
+ >
</el-col>
</el-row>
</div>
</div>
<div style="flex: 1; overflow-y: auto" v-loading="productTableLoading0">
- <el-table :data="productList0" ref="productTable0" style="width: 100%" height="96%" tooltip-effect="dark"
- stripe :fit="true" border @select-all="handleSelectAll0" @select="handleSelectionChange0"
- header-row-class-name="header-class" :row-key="(row) => row.id" @filter-change="filterHandler"
- highlight-current-row>
+ <el-table
+ :data="productList0"
+ ref="productTable0"
+ style="width: 100%"
+ height="96%"
+ tooltip-effect="dark"
+ stripe
+ :fit="true"
+ border
+ @select-all="handleSelectAll0"
+ @select="handleSelectionChange0"
+ header-row-class-name="header-class"
+ :row-key="(row) => row.id"
+ @filter-change="filterHandler"
+ highlight-current-row
+ >
<el-table-column type="selection" width="50"> </el-table-column>
- <el-table-column prop="sample" label="浜у搧" min-width="100" show-overflow-tooltip></el-table-column>
- <el-table-column prop="model" label="鍨嬪彿" min-width="100" show-overflow-tooltip></el-table-column>
- <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip :filters="filters0"
- :filter-multiple="false" column-key="inspectionItem" filter-placement="bottom-start"></el-table-column>
- <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" show-overflow-tooltip
- :filters="filters1" :filter-multiple="false" column-key="inspectionItemSubclass"
- filter-placement="bottom-start"></el-table-column>
- <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip
- :filters="dict.type.sys_sub_lab" :filter-multiple="false" column-key="sonLaboratory"
- filter-placement="bottom-start"></el-table-column>
- <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="200px"></el-table-column>
- <el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"></el-table-column>
- <el-table-column prop="methodS" label="璇曢獙鏂规硶" width="200"></el-table-column>
- <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
- <el-table-column prop="price" label="鍗曚环(鍏�)" width="120"></el-table-column>
- <el-table-column prop="manHour" label="宸ユ椂绯绘暟" width="120"></el-table-column>
- <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column
+ prop="sample"
+ label="浜у搧"
+ min-width="100"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="model"
+ label="鍨嬪彿"
+ min-width="100"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="inspectionItem"
+ label="妫�楠岄」"
+ min-width="140"
+ show-overflow-tooltip
+ :filters="filters0"
+ :filter-multiple="false"
+ column-key="inspectionItem"
+ filter-placement="bottom-start"
+ ></el-table-column>
+ <el-table-column
+ prop="inspectionItemSubclass"
+ label="妫�楠岄」瀛愰」"
+ min-width="140"
+ show-overflow-tooltip
+ :filters="filters1"
+ :filter-multiple="false"
+ column-key="inspectionItemSubclass"
+ filter-placement="bottom-start"
+ ></el-table-column>
+ <el-table-column
+ prop="sonLaboratory"
+ label="瀛愬疄楠屽"
+ width="130"
+ show-overflow-tooltip
+ :filters="dict.type.sys_sub_lab"
+ :filter-multiple="false"
+ column-key="sonLaboratory"
+ filter-placement="bottom-start"
+ ></el-table-column>
+ <el-table-column
+ prop="ask"
+ label="瑕佹眰鍊�"
+ min-width="200px"
+ ></el-table-column>
+ <el-table-column
+ prop="tell"
+ label="瑕佹眰鎻忚堪"
+ min-width="220px"
+ ></el-table-column>
+ <el-table-column
+ prop="methodS"
+ label="璇曢獙鏂规硶"
+ width="200"
+ ></el-table-column>
+ <el-table-column
+ prop="unit"
+ label="璁¢噺鍗曚綅"
+ width="100"
+ show-overflow-tooltip
+ ></el-table-column>
+ <el-table-column
+ prop="price"
+ label="鍗曚环(鍏�)"
+ width="120"
+ ></el-table-column>
+ <el-table-column
+ prop="manHour"
+ label="宸ユ椂绯绘暟"
+ width="120"
+ ></el-table-column>
+ <el-table-column
+ prop="manHourGroup"
+ label="宸ユ椂鍒嗙粍"
+ width="100"
+ show-overflow-tooltip
+ ></el-table-column>
<el-table-column prop="templateId" label="妯℃澘" width="200">
<template slot-scope="scope">
{{
templateList.find((item) => item.id == scope.row.templateId)
? templateList.find(
- (item) => item.id == scope.row.templateId
- ).name
+ (item) => item.id == scope.row.templateId
+ ).name
: ""
}}
</template>
</el-table-column>
- <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column>
+ <el-table-column
+ prop="section"
+ label="鍖洪棿"
+ width="120"
+ show-overflow-tooltip
+ ></el-table-column>
</el-table>
- <el-pagination style="position: absolute; right: 16px; bottom: 4px" @current-change="handleCurrentChange0"
- :current-page="currentPage0" layout="total, prev, pager, next, jumper" :page-size="100" :total="total0">
+ <el-pagination
+ style="position: absolute; right: 16px; bottom: 4px"
+ @current-change="handleCurrentChange0"
+ :current-page="currentPage0"
+ layout="total, prev, pager, next, jumper"
+ :page-size="100"
+ :total="total0"
+ >
</el-pagination>
</div>
</div>
</el-dialog>
- <el-dialog title="鍖洪棿璁剧疆" :visible.sync="sectionUpDia" width="70%" :close-on-click-modal="false">
+ <el-dialog
+ title="鍖洪棿璁剧疆"
+ :visible.sync="sectionUpDia"
+ width="70%"
+ :close-on-click-modal="false"
+ >
<div style="width: 100%; text-align: left">
- <el-button id="copyBtn" v-if="sectionList.length > 0" :data-clipboard-text="JSON.stringify(sectionList)"
- type="primary" size="mini" @click="copySectionConfig">澶嶅埗鍖洪棿璁剧疆</el-button>
- <el-button type="primary" size="mini" @click="openImportSectionsConfig">瀵煎叆鍖洪棿璁剧疆</el-button>
- <el-dialog :visible.sync="importSectionsConfigDia" width="30%" title="瀵煎叆鍖洪棿閰嶇疆">
- <el-input type="textarea" :rows="3" v-model="sectionsConfigText"></el-input>
+ <el-button
+ id="copyBtn"
+ v-if="sectionList.length > 0"
+ :data-clipboard-text="JSON.stringify(sectionList)"
+ type="primary"
+ size="mini"
+ @click="copySectionConfig"
+ >澶嶅埗鍖洪棿璁剧疆</el-button
+ >
+ <el-button type="primary" size="mini" @click="openImportSectionsConfig"
+ >瀵煎叆鍖洪棿璁剧疆</el-button
+ >
+ <el-dialog
+ :visible.sync="importSectionsConfigDia"
+ width="30%"
+ title="瀵煎叆鍖洪棿閰嶇疆"
+ >
+ <el-input
+ type="textarea"
+ :rows="3"
+ v-model="sectionsConfigText"
+ ></el-input>
<span slot="footer" class="dialog-footer">
- <el-button @click="importSectionsConfigDia = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="confirmImportConfig">纭</el-button>
+ <el-button @click="importSectionsConfigDia = false"
+ >鍙� 娑�</el-button
+ >
+ <el-button type="primary" @click="confirmImportConfig"
+ >纭</el-button
+ >
</span>
</el-dialog>
</div>
@@ -509,62 +911,112 @@
</el-table-column>
<el-table-column label="鍖洪棿" align="center">
<template slot-scope="scope">
- <el-input size="small" v-model="scope.row.thing" clearable placeholder="鍖洪棿"></el-input>
+ <el-input
+ size="small"
+ v-model="scope.row.thing"
+ clearable
+ placeholder="鍖洪棿"
+ ></el-input>
</template>
</el-table-column>
<el-table-column label="瑕佹眰鍊�" align="center">
<template slot-scope="scope">
- <el-input size="small" v-model="scope.row.ask" clearable placeholder="瑕佹眰鍊�"></el-input>
+ <el-input
+ size="small"
+ v-model="scope.row.ask"
+ clearable
+ placeholder="瑕佹眰鍊�"
+ ></el-input>
</template>
</el-table-column>
<el-table-column label="瑕佹眰鎻忚堪" align="center">
<template slot-scope="scope">
- <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable type="textarea"
- :autosize="{ minRows: 1, maxRows: 2 }"></el-input>
+ <el-input
+ size="small"
+ placeholder="瑕佹眰鎻忚堪"
+ v-model="scope.row.tell"
+ clearable
+ type="textarea"
+ :autosize="{ minRows: 1, maxRows: 2 }"
+ ></el-input>
</template>
</el-table-column>
<el-table-column label="鍗曚环" align="center" width="120">
<template slot-scope="scope">
- <el-input size="small" v-model="scope.row.price" clearable placeholder="鍗曚环"></el-input>
+ <el-input
+ size="small"
+ v-model="scope.row.price"
+ clearable
+ placeholder="鍗曚环"
+ ></el-input>
</template>
</el-table-column>
<el-table-column label="宸ユ椂绯绘暟" align="center" width="120">
<template slot-scope="scope">
- <el-input size="small" v-model="scope.row.manHour" clearable placeholder="宸ユ椂绯绘暟"></el-input>
+ <el-input
+ size="small"
+ v-model="scope.row.manHour"
+ clearable
+ placeholder="宸ユ椂绯绘暟"
+ ></el-input>
</template>
</el-table-column>
<el-table-column label="鎿嶄綔" width="70" align="center">
<template slot-scope="scope">
- <el-button size="mini" type="danger" icon="el-icon-minus" circle
- @click="sectionList.splice(scope.$index, 1)"></el-button>
+ <el-button
+ size="mini"
+ type="danger"
+ icon="el-icon-minus"
+ circle
+ @click="sectionList.splice(scope.$index, 1)"
+ ></el-button>
</template>
</el-table-column>
</el-table>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="sectionUpDia = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="sectionLoadAdd" :loading="sectionLoad">淇� 瀛�</el-button>
- <el-button type="primary" @click="
- sectionList.push({
- thing: '',
- price: sectionRow.price,
- manHour: sectionRow.manHour,
- })
- " icon="el-icon-plus"></el-button>
+ <el-button type="primary" @click="sectionLoadAdd" :loading="sectionLoad"
+ >淇� 瀛�</el-button
+ >
+ <el-button
+ type="primary"
+ @click="
+ sectionList.push({
+ thing: '',
+ price: sectionRow.price,
+ manHour: sectionRow.manHour,
+ })
+ "
+ icon="el-icon-plus"
+ ></el-button>
</span>
</el-dialog>
<el-dialog title="鏁版嵁瀵煎叆" :visible.sync="uploadDia" width="500px">
<div style="margin: 0 auto">
- <el-upload ref="upload" drag :action="javaApi + '/standardTree/inExcelOfTree' + '/' + 'false'
- " :headers="uploadHeader" :file-list="fileList" name="file" :auto-upload="false" accept=".xlsx" :limit="1"
- :on-change="beforeUpload" :on-success="onSuccess" :on-error="onError">
+ <el-upload
+ ref="upload"
+ drag
+ :action="javaApi + '/standardTree/inExcelOfTree' + '/' + 'false'"
+ :headers="uploadHeader"
+ :file-list="fileList"
+ name="file"
+ :auto-upload="false"
+ accept=".xlsx"
+ :limit="1"
+ :on-change="beforeUpload"
+ :on-success="onSuccess"
+ :on-error="onError"
+ >
<i class="el-icon-upload"></i>
<div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
</el-upload>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="uploadDia = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitUpload()" :loading="uploading">涓� 浼�</el-button>
+ <el-button type="primary" @click="submitUpload()" :loading="uploading"
+ >涓� 浼�</el-button
+ >
</span>
</el-dialog>
</div>
@@ -588,10 +1040,10 @@
resetTreeOfPrice,
resetTreeOfHour,
selectsStandardMethodByFLSSM,
-} from '@/api/standard/standardLibrary.js'
+} from "@/api/standard/standardLibrary.js";
export default {
- dicts: ['sys_sub_lab'],
+ dicts: ["sys_sub_lab"],
data() {
return {
importSectionsConfigDia: false,
@@ -708,7 +1160,7 @@
this.selectStandardMethods();
},
methods: {
- confirmImportConfig() { },
+ confirmImportConfig() {},
openImportSectionsConfig() {
// this.importSectionsConfigDia = true
this.$confirm("纭瀵煎叆澶嶅埗鐨勫尯闂撮厤缃�?", "鎻愮ず", {
@@ -736,7 +1188,7 @@
this.$message.success("瀵煎叆鎴愬姛");
}
})
- .catch(() => { });
+ .catch(() => {});
},
//澶嶅埗鍖洪棿閰嶇疆
copySectionConfig() {
@@ -825,7 +1277,7 @@
this.productList = [];
});
})
- .catch((e) => { });
+ .catch((e) => {});
},
deleteStandard(arr, label) {
arr.forEach((item, index) => {
@@ -987,27 +1439,27 @@
return;
}
this.addLoad = true;
- addStandardTree(this.addOb).then((res) => {
- if (res.code === 201) {
+ addStandardTree(this.addOb)
+ .then((res) => {
+ if (res.code === 201) {
+ this.addLoad = false;
+ return;
+ }
+ this.$message.success("娣诲姞鎴愬姛");
+ this.addDia = false;
+ this.list
+ .find((a) => a.label == this.addOb.factory)
+ .children.find((a) => a.label == this.addOb.laboratory)
+ .children.find((a) => a.label == this.addOb.sampleType)
+ .children.find((a) => a.label == this.addOb.sample)
+ .children.push({
+ code: "[5]",
+ label: this.addOb.model,
+ value: this.addOb.model,
+ });
this.addLoad = false;
- return;
- }
- this.$message.success("娣诲姞鎴愬姛");
- this.addDia = false;
- this.list
- .find((a) => a.label == this.addOb.factory)
- .children.find((a) => a.label == this.addOb.laboratory)
- .children.find((a) => a.label == this.addOb.sampleType)
- .children.find((a) => a.label == this.addOb.sample)
- .children.push({
- code: "[5]",
- label: this.addOb.model,
- value: this.addOb.model,
- });
- this.addLoad = false;
- this.$tab.refreshPage();
-
- })
+ this.$tab.refreshPage();
+ })
.catch((e) => {
this.addDia = false;
this.addLoad = false;
@@ -1017,17 +1469,16 @@
this.tableLoad = true;
selectsStandardMethodByFLSSM({
tree: this.selectTree,
- })
- .then((res) => {
- this.tableLoad = false;
- this.standardList = res.data.standardMethodList;
- if (this.standardList && this.standardList.length > 0) {
- this.$refs.standard.setCurrentRow(this.standardList[0]);
- this.rowClick(this.standardList[0]);
- } else {
- this.productList = [];
- }
- });
+ }).then((res) => {
+ this.tableLoad = false;
+ this.standardList = res.data.standardMethodList;
+ if (this.standardList && this.standardList.length > 0) {
+ this.$refs.standard.setCurrentRow(this.standardList[0]);
+ this.rowClick(this.standardList[0]);
+ } else {
+ this.productList = [];
+ }
+ });
},
getPower() {
let power = JSON.parse(sessionStorage.getItem("power"));
@@ -1094,14 +1545,13 @@
id: index,
tell: value,
}),
- })
- .then((res) => {
- if (res.code == 201) {
- this.$message.error("鏈繚瀛�");
- return;
- }
- this.$message.success("宸蹭繚瀛�");
- });
+ }).then((res) => {
+ if (res.code == 201) {
+ this.$message.error("鏈繚瀛�");
+ return;
+ }
+ this.$message.success("宸蹭繚瀛�");
+ });
},
upStandardProductListOfMethodS(value, index) {
upStandardProductList({
@@ -1109,14 +1559,13 @@
id: index,
methodS: value,
}),
- })
- .then((res) => {
- if (res.code == 201) {
- this.$message.error("鏈繚瀛�");
- return;
- }
- // this.$message.success('宸蹭繚瀛�')
- });
+ }).then((res) => {
+ if (res.code == 201) {
+ this.$message.error("鏈繚瀛�");
+ return;
+ }
+ // this.$message.success('宸蹭繚瀛�')
+ });
},
upStandardProductListOfPrice(value, index) {
upStandardProductList({
@@ -1124,14 +1573,13 @@
id: index,
price: value,
}),
- })
- .then((res) => {
- if (res.code == 201) {
- this.$message.error("鏈繚瀛�");
- return;
- }
- // this.$message.success('宸蹭繚瀛�')
- });
+ }).then((res) => {
+ if (res.code == 201) {
+ this.$message.error("鏈繚瀛�");
+ return;
+ }
+ // this.$message.success('宸蹭繚瀛�')
+ });
},
upStandardProductListOfManHour(value, index) {
upStandardProductList({
@@ -1139,14 +1587,13 @@
id: index,
manHour: value,
}),
- })
- .then((res) => {
- if (res.code == 201) {
- this.$message.error("鏈繚瀛�");
- return;
- }
- // this.$message.success('宸蹭繚瀛�')
- });
+ }).then((res) => {
+ if (res.code == 201) {
+ this.$message.error("鏈繚瀛�");
+ return;
+ }
+ // this.$message.success('宸蹭繚瀛�')
+ });
},
upStandardProductListOfTemplate(value, index) {
upStandardProductList({
@@ -1154,14 +1601,13 @@
id: index,
templateId: value,
}),
- })
- .then((res) => {
- if (res.code == 201) {
- this.$message.error("鏈繚瀛�");
- return;
- }
- // this.$message.success('宸蹭繚瀛�')
- });
+ }).then((res) => {
+ if (res.code == 201) {
+ this.$message.error("鏈繚瀛�");
+ return;
+ }
+ // this.$message.success('宸蹭繚瀛�')
+ });
},
delStandardMethodByFLSSM(id) {
this.$confirm("鏄惁鍒犻櫎褰撳墠鏁版嵁?", "璀﹀憡", {
@@ -1171,7 +1617,7 @@
})
.then(() => {
this.tableLoad = true;
- delStandardMethodByFLSSM({ id: id, }).then((res) => {
+ delStandardMethodByFLSSM({ id: id }).then((res) => {
if (res.code == 201) {
return;
}
@@ -1179,7 +1625,7 @@
this.selectsStandardMethodByFLSSM();
});
})
- .catch(() => { });
+ .catch(() => {});
},
handleSelectionChange(val) {
this.selects = [];
@@ -1213,7 +1659,7 @@
this.selectsStandardMethodByFLSSM();
});
})
- .catch(() => { });
+ .catch(() => {});
},
// addStandardProductDo() {
// let selects = this.$refs.ValueTable.multipleSelection;
@@ -1386,16 +1832,15 @@
price: this.sectionRow.price,
manHour: this.sectionRow.manHour,
}),
- })
- .then((res) => {
- this.sectionLoad = false;
- if (res.code == 201) {
- this.$message.error("鏈繚瀛�");
- return;
- }
- this.$message.success("宸蹭繚瀛�");
- this.sectionUpDia = false;
- });
+ }).then((res) => {
+ this.sectionLoad = false;
+ if (res.code == 201) {
+ this.$message.error("鏈繚瀛�");
+ return;
+ }
+ this.$message.success("宸蹭繚瀛�");
+ this.sectionUpDia = false;
+ });
} else {
upStandardProducts({
ids: JSON.stringify(this.moreSelects.map((a) => a.id)),
@@ -1479,7 +1924,7 @@
upStandardProducts({
ids: JSON.stringify(this.moreSelects.map((a) => a.id)),
standardProductList: this.moreInfo,
- },).then((res) => {
+ }).then((res) => {
this.moreEditLoad = false;
if (res.code == 201) {
this.$message.error("鏈繚瀛�");
@@ -1531,23 +1976,22 @@
laboratory: this.sonLaboratory,
items: this.inspectionItemSubclass,
item: this.inspectionItem,
- })
- .then((res) => {
- this.productList0 = res.data.records;
- this.total0 = res.data.total;
- this.productTableLoading0 = false;
- this.page = res.data.pages;
- this.$nextTick(() => {
- this.productList0.forEach((a, i) => {
- if (this.moreSelects.find((b) => a.id == b.id)) {
- this.$refs.productTable0.toggleRowSelection(
- this.productList0[i],
- true
- );
- }
- });
+ }).then((res) => {
+ this.productList0 = res.data.records;
+ this.total0 = res.data.total;
+ this.productTableLoading0 = false;
+ this.page = res.data.pages;
+ this.$nextTick(() => {
+ this.productList0.forEach((a, i) => {
+ if (this.moreSelects.find((b) => a.id == b.id)) {
+ this.$refs.productTable0.toggleRowSelection(
+ this.productList0[i],
+ true
+ );
+ }
});
});
+ });
},
handleCurrentChange0(e) {
this.currentPage0 = e;
@@ -1558,25 +2002,24 @@
id: this.standardId,
tree: this.selectTree,
item: this.inspectionItem,
- })
- .then((res) => {
- this.filters0 = [];
- this.filters1 = [];
- res.data.item.forEach((a) => {
- this.filters0.push({
- text: a.inspectionItem,
- value: a.inspectionItem,
- });
- });
- res.data.items.forEach((a) => {
- if (a != null) {
- this.filters1.push({
- text: a.inspectionItemSubclass,
- value: a.inspectionItemSubclass,
- });
- }
+ }).then((res) => {
+ this.filters0 = [];
+ this.filters1 = [];
+ res.data.item.forEach((a) => {
+ this.filters0.push({
+ text: a.inspectionItem,
+ value: a.inspectionItem,
});
});
+ res.data.items.forEach((a) => {
+ if (a != null) {
+ this.filters1.push({
+ text: a.inspectionItemSubclass,
+ value: a.inspectionItemSubclass,
+ });
+ }
+ });
+ });
},
beforeUpload(file, fileList) {
if (
@@ -1640,21 +2083,20 @@
resetTreeOfHour({
tree: this.selectTree,
standardId: this.standardId,
- })
- .then((res) => {
- if (res.code == 201) {
- return;
- }
- this.$message.success("宸叉竻绌�");
- this.currentPage0 = 1;
- this.getList();
- this.rowClick({
- id: this.standardId,
- });
+ }).then((res) => {
+ if (res.code == 201) {
+ return;
+ }
+ this.$message.success("宸叉竻绌�");
+ this.currentPage0 = 1;
+ this.getList();
+ this.rowClick({
+ id: this.standardId,
});
+ });
}
})
- .catch(() => { });
+ .catch(() => {});
},
},
};
--
Gitblit v1.9.3