811 lines
47 KiB
HTML
811 lines
47 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0, user-scalable=0">
|
||
<title></title>
|
||
<script src="./lib/jquery/dist/jquery.js"></script>
|
||
<script src="./lib/vuejs/vue.js"></script>
|
||
<script src="./lib/vuejs/axios.min.js"></script>
|
||
<script src="./lib/elementui/index.js"></script>
|
||
<!--<script src="./lib/linq.js/Content/Scripts/linq.min.js"></script>-->
|
||
<script src="Scripts/linq.js"></script>
|
||
<link href="./lib/elementui/index.css" rel="stylesheet" />
|
||
<script src="app/app.js"></script>
|
||
|
||
</head>
|
||
<body>
|
||
<div id="app" >
|
||
<el-container>
|
||
<el-header>消费量相关替换操作集合</el-header>
|
||
<el-main v-loading="loading" v-loading.fullscreen.lock="false" :element-loading-text="showLoadingTip"
|
||
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.1)">
|
||
<el-row>
|
||
<el-button type="primary" :loading="btnLoading[0]" round @click="changeBatchJYXM">项目分类批量替换</el-button>
|
||
<el-button type="primary" :loading="btnLoading[1]" round @click="changeProvince">省份替换</el-button>
|
||
<el-button type="primary" :loading="btnLoading[2]" round @click="changeDistrict">区县替换</el-button>
|
||
<el-button type="primary" :loading="btnLoading[3]" round @click="changeBrackets">括号替换</el-button>
|
||
</el-row>
|
||
|
||
|
||
<el-row>
|
||
<el-button type="primary" :loading="btnLoading[4]" round @click="changeCYDD">抽样地点替换</el-button>
|
||
<el-button type="primary" :loading="btnLoading[6]" round @click="changeYCD">原产地替换</el-button>
|
||
<el-button type="primary" :loading="btnLoading[7]" round @click="changeWLPTMC">网络平台名称</el-button>
|
||
<el-button type="primary" :loading="btnLoading[8]" round @click="changeJYJGJC">检验机构简称</el-button>
|
||
</el-row>
|
||
|
||
<el-row>
|
||
<el-form :inline="true" class="demo-form-inline" label-width="100px" size="small" style=" box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);padding-top:20px">
|
||
<el-form-item>
|
||
<el-select v-model="strJYXM.source.JCXM" placeholder="请动态搜索项目分类" filterable @change="showLeiXingDetail(strJYXM.source.JCXM)">
|
||
<el-option v-for="item in JYXM_Option"
|
||
:key="item.id"
|
||
:label="item.JCXM"
|
||
:value="item.JCXM">
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-input v-model="strJYXM.source.JCDL" :disabled="true" placeholder="检测大类"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-input v-model="strJYXM.source.JCXL" :disabled="true" placeholder="检测小类"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-input v-model="strJYXM.source.JCYL" :disabled="true" placeholder="检测亚类"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" :loading="btnLoading[5]" round @click="changeJYXM">项目分类单独替换</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-row>
|
||
|
||
<el-row>
|
||
<el-form :inline="true" class="demo-form-inline" label-width="100px" size="small" style=" box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);padding-top:20px">
|
||
<el-form-item>
|
||
<el-input v-model="strXMMC.source" placeholder="请输入原检验项目名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-input v-model="strXMMC.dest" placeholder="请输入新检验项目名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" :loading="btnLoading[5]" round @click="changeXMMC">检验项目单独替换</el-button>
|
||
<el-button type="primary" :loading="btnLoading[5]" round @click="changeBatchXMMC">检验项目批量替换</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-row>
|
||
|
||
|
||
|
||
<el-row>
|
||
<el-form :inline="true" class="demo-form-inline" label-width="100px" size="small" style=" box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); padding-top: 20px">
|
||
<el-form-item>
|
||
<el-select v-model="strSPLB.type" placeholder="请选择类型" filterable >
|
||
<el-option v-for="item in SPLB_Option"
|
||
:key="item.value"
|
||
:label="item.label"
|
||
:value="item.value">
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-input v-model="strSPLB.source" placeholder="请输入原食品名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-input v-model="strSPLB.dest" placeholder="请输入新食品名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" :loading="btnLoading[9]" round @click="changeSPLB">检验食品替换</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-row>
|
||
|
||
<el-row>
|
||
<el-form :inline="true" class="demo-form-inline" label-width="100px" size="small" style=" box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); padding-top: 20px">
|
||
<el-form-item>
|
||
<el-input v-model="strDXPD.source" placeholder="请输入原单项判定名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-input v-model="strDXPD.dest" placeholder="请输入新单项判定名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" :loading="btnLoading[10]" round @click="changeDXPD">单项判定替换</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-row>
|
||
|
||
<el-row>
|
||
<el-form :inline="true" class="demo-form-inline" label-width="100px" size="small" style=" box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); padding-top: 20px">
|
||
|
||
<el-form-item>
|
||
<el-input v-model="strRWLY.source" placeholder="请输入原任务来源名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-input v-model="strRWLY.dest" placeholder="请输入新任务来源名称"></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" :loading="btnLoading[11]" round @click="changeRWLY">任务来源替换</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-row>
|
||
|
||
|
||
|
||
|
||
<el-row>
|
||
<el-input type="textarea"
|
||
:rows="10"
|
||
placeholder="替换操作状态提示"
|
||
v-model="textarea">
|
||
</el-input>
|
||
</el-row>
|
||
</el-main>
|
||
<el-footer>
|
||
|
||
</el-footer>
|
||
</el-container>
|
||
|
||
|
||
</div>
|
||
|
||
</body>
|
||
</html>
|
||
|
||
|
||
<script>
|
||
///////////////////////////////////////////////////
|
||
//该部分是Vue应用封装
|
||
var app = new Vue({
|
||
el: '#app',
|
||
data() {
|
||
return {
|
||
//括号的替换字典,之所有有雷同目的是左右括号分开来
|
||
//0-检验项目的替换字典
|
||
JYXMDict: [],
|
||
JYXM_Option:[], //新增的为了下拉菜单选择
|
||
//1-省的替换字典
|
||
ProvinceDict: [
|
||
{ "source": "台湾", "dest": "/" }, { "source": "江西", "dest": "江西省" }, { "source": "上海", "dest": "上海市" }, { "source": "吉林", "dest": "吉林省" },
|
||
{ "source": "安徽", "dest": "安徽省" }, { "source": "山东", "dest": "山东省" }, { "source": "河北", "dest": "河北省" },
|
||
{ "source": "河南", "dest": "河南省" }, { "source": "浙江", "dest": "浙江省" }, { "source": "辽宁", "dest": "辽宁省" }, { "source": "黑龙江", "dest": "黑龙江省" },
|
||
{ "source": "北京", "dest": "北京市" }, { "source": "天津", "dest": "天津市" }, { "source": "四川", "dest": "四川省" }, { "source": "内蒙古", "dest": "内蒙古自治区" },
|
||
{ "source": "广东", "dest": "广东省" }, { "source": "广西", "dest": "广西壮族自治区" }, { "source": "新疆", "dest": "新疆维吾尔自治区" }, { "source": "福建", "dest": "福建省" },
|
||
{ "source": "贵州", "dest": "贵州省" }, { "source": "湖北", "dest": "湖北省" }, { "source": "湖南", "dest": "湖南省" },
|
||
{ "source": "青海", "dest": "青海省" }, { "source": "重庆", "dest": "重庆市" }, { "source": "宁夏", "dest": "宁夏回族自治区" },
|
||
{ "source": "甘肃", "dest": "甘肃省" }, { "source": "山西", "dest": "山西省" }, { "source": "海南", "dest": "海南省" }, { "source": "陕西", "dest": "陕西省" }, { "source": "云南", "dest": "云南省" },
|
||
{ "source": "不详", "dest": "/" }, { "source": "国外", "dest": "/" }, { "source": "", "dest": "/" }, { "source": "null", "dest": "/" }
|
||
],
|
||
|
||
//2-区县的替换字典
|
||
DistrictDict: [
|
||
{ "source": "黄浦", "dest": "黄浦区" }, { "source": "徐汇", "dest": "徐汇区" }, { "source": "长宁", "dest": "长宁区" }, { "source": "静安", "dest": "静安区" },
|
||
{ "source": "普陀", "dest": "普陀区" }, { "source": "虹口", "dest": "虹口区" }, { "source": "杨浦", "dest": "杨浦区" }, { "source": "闵行", "dest": "闵行区" },
|
||
{ "source": "宝山", "dest": "宝山区" }, { "source": "嘉定", "dest": "嘉定区" }, { "source": "浦东", "dest": "浦东新区" }, { "source": "金山", "dest": "金山区" },
|
||
{ "source": "松江", "dest": "松江区" }, { "source": "青浦", "dest": "青浦区" }, { "source": "奉贤", "dest": "奉贤区" }, { "source": "崇明", "dest": "崇明区" },
|
||
{ "source": "淘宝网", "dest": "/" }, { "source": "", "dest": "/" }
|
||
],
|
||
|
||
//3-左右括号的替换字典
|
||
bracketsDict: [
|
||
{ "field": "SCZMC", "note": "生产者名称", "lr": 0 },
|
||
{ "field": "SCZMC", "note": "生产者名称", "lr": 1 },
|
||
{ "field": "BCYDWMC", "note": "被抽样单位地址", "lr": 0 },
|
||
{ "field": "BCYDWMC", "note": "被抽样单位地址", "lr": 1 },
|
||
{ "field": "JCXM", "note": "检验项目", "lr": 0 },
|
||
{ "field": "JCXM", "note": "检验项目", "lr": 1 },
|
||
{ "field": "SP_YL", "note": "食品亚类", "lr": 0 },
|
||
{ "field": "SP_YL", "note": "食品亚类", "lr": 1 },
|
||
{ "field": "SP_PZ", "note": "食品品种", "lr": 0 },
|
||
{ "field": "SP_PZ", "note": "食品品种", "lr": 1 },
|
||
{ "field": "SP_XL", "note": "食品小类", "lr": 0 },
|
||
{ "field": "SP_XL", "note": "食品小类", "lr": 1 },
|
||
{ "field": "BCYRMC", "note": "被抽样单位", "lr": 0 },
|
||
{ "field": "BCYRMC", "note": "被抽样单位", "lr": 1 },
|
||
{ "field": "CYDDLX", "note": "抽样地点类型", "lr": 0 },
|
||
{ "field": "CYDDLX", "note": "抽样地点类型", "lr": 1 },
|
||
{ "field": "NEWYPFL", "note": "新样品分类", "lr": 0 },
|
||
{ "field": "NEWYPFL", "note": "新样品分类", "lr": 1 }
|
||
],
|
||
|
||
//4-抽样地点类型的替换字典
|
||
CYDDDict: [
|
||
{ "source": "生产", "dest": "生产环节" },
|
||
{ "source": "流通", "dest": "流通环节" },
|
||
{ "source": "餐饮", "dest": "餐饮环节" },
|
||
{ "source": "餐馆(中型餐馆)", "dest": "中型餐馆" },
|
||
{ "source": "餐馆(大型餐馆)", "dest": "大型餐馆" },
|
||
{ "source": "餐馆(小型餐馆)", "dest": "小型餐馆" },
|
||
{ "source": "成品库(已检区)", "dest": "成品库" },
|
||
{ "source": "成品库(待检区)", "dest": "成品库" },
|
||
{ "source": "小杂食店", "dest": "小食杂店" },
|
||
{ "source": "水果店", "dest": "流通_其他" },
|
||
{ "source": "蔬菜店", "dest": "流通_其他" },
|
||
{ "source": "母婴店", "dest": "流通_其他" },
|
||
{ "source": "已检区", "dest": "成品库" },
|
||
{ "source": "待检区", "dest": "成品库" },
|
||
{ "source": "零售", "dest": "流通_其他" },
|
||
{ "source": "成品库(待检区)", "dest": "成品库" },
|
||
{ "source": "成品库(待检区)", "dest": "成品库" }
|
||
],
|
||
|
||
|
||
//5.1-批量项目名称的替换字典
|
||
XMMCDict: [
|
||
{ "source": "铅(以Pb计)", "dest": "铅" },
|
||
{ "source": "镉(以Cd计)", "dest": "镉" },
|
||
{ "source": "铬(以Cr计)", "dest": "铬" },
|
||
{ "source": "总砷(以As计)", "dest": "总砷" },
|
||
{ "source": "苯甲酸及其钠盐(以苯甲酸计)", "dest": "苯甲酸" },
|
||
{ "source": "山梨酸及其钾盐(以山梨酸计)", "dest": "山梨酸" },
|
||
{ "source": "脱氢乙酸及其钠盐(以脱氢乙酸计)", "dest": "脱氢乙酸" },
|
||
{ "source": "黄曲霉毒素M₁", "dest": "黄曲霉毒素M1" },
|
||
{ "source": "总汞(以Hg计)", "dest": "总汞" },
|
||
{ "source": "五氯酚酸钠(以五氯酚计)", "dest": "五氯酚酸钠" },
|
||
{ "source": "黄曲霉毒素B₁", "dest": "黄曲霉毒素B1" },
|
||
{ "source": "无机砷(以As计)", "dest": "无机砷" },
|
||
{ "source": "糖精钠(以糖精计)", "dest": "糖精钠" },
|
||
{ "source": "亚硝酸盐(以亚硝酸钠计)", "dest": "亚硝酸盐" },
|
||
{ "source": "丁基羟基茴香醚(BHA)", "dest": "丁基羟基茴香醚" },
|
||
{ "source": "二丁基羟基甲苯(BHT)", "dest": "二丁基羟基甲苯" },
|
||
{ "source": "特丁基对苯二酚(TBHQ)", "dest": "特丁基对苯二酚" },
|
||
{ "source": "恩诺沙星(以恩诺沙星与环丙沙星之和计)", "dest": "恩诺沙星+环丙沙星" },
|
||
{ "source": "蛋白质(N×6.25)", "dest": "蛋白质" },
|
||
{ "source": "氰化物(以HCN计)", "dest": "氰化物" },
|
||
{ "source": "土霉素/金霉素/四环素(组合含量)", "dest": "四环素+金霉素+土霉素" },
|
||
{ "source": "过氧化值(以脂肪计)", "dest": "过氧化值" },
|
||
{ "source": "酸价(以脂肪计)", "dest": "酸价" },
|
||
{ "source": "花生四烯酸", "dest": "二十碳四烯酸 " },
|
||
{ "source": "铝的残留量(干样品,以Al计)", "dest": "铝" },
|
||
{ "source": "苯并(a)芘", "dest": "苯并[a]芘" },
|
||
{ "source": "酸价(KOH)", "dest": "酸价" },
|
||
{ "source": "酸价(以脂肪计)(KOH)", "dest": "酸价" },
|
||
{ "source": "甲基汞(以Hg计)", "dest": "甲基汞" },
|
||
{ "source": "甜蜜素(以环己基氨基磺酸计)", "dest": "甜蜜素" },
|
||
{ "source": "硝酸盐(以NaNO₃计)", "dest": "硝酸盐" },
|
||
{ "source": "二氧化硫残留量", "dest": "二氧化硫" },
|
||
{ "source": "苯并(α)芘", "dest": "苯并[a]芘" },
|
||
{ "source": "苯并芘", "dest": "苯并[a]芘" },
|
||
{ "source": "苯并[α]芘", "dest": "苯并[a]芘" },
|
||
{ "source": "多氯联苯(以PCB28、PCB52、PCB101、PCB118、PCB138、PCB153和PCB180总和计)", "dest": "多氯联苯" },
|
||
{ "source": "恩诺沙星 环丙沙星", "dest": "恩诺沙星+环丙沙星" },
|
||
{ "source": "恩诺沙星(恩诺沙星与环丙沙星之和)", "dest": "恩诺沙星+环丙沙星" },
|
||
{ "source": "呋喃它酮代谢物(AMOZ)", "dest": "呋喃它酮代谢物" },
|
||
{ "source": "呋喃妥因代谢物(AHD)", "dest": "呋喃妥因代谢物" },
|
||
{ "source": "二氧化硫残留量(以SO₂计)", "dest": "二氧化硫" },
|
||
{ "source": "呋喃西林代谢物(SEM)", "dest": "呋喃西林代谢物" },
|
||
{ "source": "呋喃唑酮代谢物(AOZ)", "dest": "呋喃唑酮代谢物" },
|
||
{ "source": "氟苯尼考(氟苯尼考与氟苯尼考胺之和)", "dest": "氟苯尼考+氟苯尼考胺" },
|
||
{ "source": "过氧化值(以脂肪计)(KOH)", "dest": "过氧化值" },
|
||
{ "source": "过氧化值(以脂肪计)(KOH)", "dest": "过氧化值" },
|
||
{ "source": "过氧化值(以脂计)", "dest": "过氧化值" },
|
||
{ "source": "谷氨酸钠(以干基计)", "dest": "谷氨酸钠" },
|
||
{ "source": "磺胺类(总量)", "dest": "磺胺类(总量)" },
|
||
{ "source": "孔雀石绿(孔雀石绿系指孔雀石绿及其代谢物隐色孔雀石绿残留量之和,以孔雀石绿表示)", "dest": "孔雀石绿" },
|
||
{ "source": "孔雀石绿(以孔雀石绿及代谢物隐色孔雀石绿残留量之和计)", "dest": "孔雀石绿" },
|
||
{ "source": "孔雀石绿(以孔雀石绿及隐色孔雀石绿之和计)", "dest": "孔雀石绿" },
|
||
{ "source": "孔雀石绿(以孔雀石绿与隐色孔雀石绿之和)", "dest": "孔雀石绿" },
|
||
{ "source": "孔雀石绿(以孔雀石绿与隐色孔雀石绿之和计)", "dest": "孔雀石绿" },
|
||
{ "source": "孔雀石绿及其代谢物隐色孔雀石绿残留量之和(以孔雀石绿表示)", "dest": "孔雀石绿" },
|
||
{ "source": "亮蓝及其铝色淀(以亮蓝计)", "dest": "亮蓝" },
|
||
{ "source": "亮蓝及其铝色淀(以亮蓝计)", "dest": "亮蓝" },
|
||
{ "source": "铝的残留量(以即食海蜇中Al计)", "dest": "铝" },
|
||
{ "source": "霉菌和酵母(口服液)", "dest": "霉菌和酵母" },
|
||
{ "source": "柠檬黄及其铝色淀(以柠檬黄计)", "dest": "柠檬黄" },
|
||
{ "source": "檬黄及其铝色淀(以柠檬黄计)", "dest": "柠檬黄" },
|
||
{ "source": "铅·(以Pb计)", "dest": "铅" },
|
||
{ "source": "铅(Pb)", "dest": "铅" },
|
||
{ "source": "铅(Pb)(胶囊)", "dest": "铅" },
|
||
{ "source": "铅(Pb)(口服液)", "dest": "铅" },
|
||
{ "source": "铅(Pb)", "dest": "铅" },
|
||
{ "source": "氰戊菊酯和 S-氰戊菊酯", "dest": "氰戊菊酯和S-氰戊菊酯" },
|
||
{ "source": "日落黄及其铝色淀(以日落黄计)", "dest": "日落黄" },
|
||
{ "source": "日落黄及其铝色淀(以日落黄计)", "dest": "日落黄" },
|
||
{ "source": "叔丁基羟基茴香醚(BHA)", "dest": "叔丁基羟基茴香醚" },
|
||
{ "source": "四环素 金霉素 土霉素", "dest": "四环素+金霉素+土霉素" },
|
||
{ "source": "苏丹红I", "dest": "苏丹红Ⅰ" },
|
||
{ "source": "酸价(以KOH计)", "dest": "酸价" },
|
||
{ "source": "酸性红(又名偶氮玉红)", "dest": "酸性红" },
|
||
{ "source": "酸值(KOH)", "dest": "酸值" },
|
||
{ "source": "酸值(以氢氧化钾计)", "dest": "酸值" },
|
||
{ "source": "酸值(以氢氧化钾计)", "dest": "酸值" },
|
||
{ "source": "甜蜜素(以环已基氨基磺酸计)", "dest": "甜蜜素" },
|
||
{ "source": "维生素K₁", "dest": "维生素K1" },
|
||
{ "source": "维生素B₆", "dest": "维生素B6" },
|
||
{ "source": "维生素B₂", "dest": "维生素B2" },
|
||
{ "source": "维生素B₁₂", "dest": "维生素B12" },
|
||
{ "source": "维生素B₁", "dest": "维生素B1" },
|
||
{ "source": "锡(以Sn计)", "dest": "锡" },
|
||
{ "source": "苋菜红及其铝色淀(以苋菜红计)", "dest": "苋菜红" },
|
||
{ "source": "硝酸盐(以NaNO₃计)", "dest": "硝酸盐" },
|
||
{ "source": "新红及其铝色淀(以新红计)", "dest": "新红" },
|
||
{ "source": "胭脂红及其铝色淀(以胭脂红计)", "dest": "胭脂红" },
|
||
{ "source": "胭脂红及其铝色淀(以胭脂红计)", "dest": "胭脂红" },
|
||
{ "source": "亚硝酸盐(以NO₂⁻计)", "dest": "亚硝酸盐" },
|
||
{ "source": "亚硝酸盐(以NaNO₂计)", "dest": "亚硝酸盐" },
|
||
{ "source": "诱惑红及其铝色淀(以诱惑红计", "dest": "诱惑红" },
|
||
{ "source": "诱惑红及其铝色淀(以诱惑红计)", "dest": "诱惑红" },
|
||
{ "source": "诱惑红及其铝色淀(以诱惑红计)", "dest": "诱惑红" },
|
||
{ "source": "余氯(游离氯)", "dest": "余氯(游离氯)" },
|
||
{ "source": "总汞(以甲基汞限量判定)", "dest": "总汞" },
|
||
{ "source": "总汞(Hg)(胶囊)", "dest": "总汞" },
|
||
{ "source": "总砷(As)(胶囊)", "dest": "总砷" },
|
||
{ "source": "总砷(As)(口服液)", "dest": "总砷" },
|
||
{ "source": "余氯(游离氯)", "dest": "游离性余氯" },
|
||
{ "source": "金黄色葡萄球菌(口服液)", "dest": "金黄色葡萄球菌" },
|
||
{ "source": "菌落总数(口服液)", "dest": "菌落总数" },
|
||
{ "source": "复原乳酸度", "dest": "酸度" },
|
||
{ "source": "大肠菌群(口服液)", "dest": "大肠菌群" },
|
||
{ "source": "赤藓红及其铝色淀(以赤藓红计)", "dest": "赤藓红" },
|
||
{ "source": "丙酸及其钠盐、钙盐(以丙酸计)", "dest": "丙酸" },
|
||
{ "source": "氨基酸态氮(以氮计)", "dest": "氨基酸态氮" },
|
||
{ "source": "铵盐(以占氨基酸态氮的百分比计)", "dest": "铵盐" },
|
||
{ "source": "6-苄基腺嘌呤(6-BA)", "dest": "6-苄基腺嘌呤" },
|
||
{ "source": "4-氯苯氧乙酸钠(以4-氯苯氧乙酸计)", "dest": "4-氯苯氧乙酸" },
|
||
{ "source": "长链不饱和脂肪酸中二十碳五烯酸(20:5 n-3)的量与二十二碳六烯酸的量的比", "dest": "长链不饱和脂肪酸中二十碳五烯酸的量与二十二碳六烯酸的量的比" },
|
||
{ "source": "多西环素(强力霉素)", "dest": "多西环素,多西环" },
|
||
{ "source": "二十二碳六烯酸(22:6 n-3)与二十碳四烯酸(20:4 n-6)的比", "dest": "二十二碳六烯酸与二十碳四烯酸的比" }
|
||
|
||
],
|
||
|
||
//6-原产地的替换字典(通过网络获取)
|
||
YCDDict: [],
|
||
|
||
//7-网络平台名称的替换字典
|
||
WLPTMCDict: [
|
||
{ "source": "京东", "dest": "京东" },
|
||
{ "source": "天猫", "dest": "天猫" },
|
||
{ "source": "淘宝", "dest": "淘宝" },
|
||
{ "source": "一号店", "dest": "一号店" },
|
||
{ "source": "盒马", "dest": "盒马" },
|
||
{ "source": "饿了么", "dest": "饿了么" },
|
||
{ "source": "美团", "dest": "美团" },
|
||
{ "source": "大众点评", "dest": "大众点评" },
|
||
{ "source": "苏宁易购", "dest": "苏宁易购" },
|
||
{ "source": "易果生鲜", "dest": "易果生鲜" },
|
||
{ "source": "飞牛", "dest": "飞牛" },
|
||
{ "source": "顺丰优选", "dest": "顺丰优选" },
|
||
{ "source": "东方CJ", "dest": "东方CJ" },
|
||
{ "source": "菜管家", "dest": "菜管家" },
|
||
{ "source": "我厨网", "dest": "我厨网" },
|
||
{ "source": "我买网", "dest": "我买网" },
|
||
{ "source": "当当网", "dest": "当当网" },
|
||
{ "source": "天翌", "dest": "天翌" },
|
||
{ "source": "百联", "dest": "百联" },
|
||
{ "source": "麦德龙", "dest": "麦德龙" },
|
||
{ "source": "翌恒", "dest": "翌恒" },
|
||
{ "source": "天天果园", "dest": "天天果园" },
|
||
{ "source": "美味七七", "dest": "美味七七" },
|
||
{ "source": "一米市集", "dest": "一米市集" },
|
||
{ "source": "本来生活", "dest": "本来生活" },
|
||
{ "source": "良品铺子", "dest": "良品铺子" },
|
||
{ "source": "亚马逊", "dest": "亚马逊" }
|
||
],
|
||
|
||
//8-检验机构简称的替换字典
|
||
JYJGJCDict: [
|
||
{ "source": "上海中维检测技术有限公司", "dest": "上海中维" },
|
||
{ "source": "上海市疾病预防控制中心", "dest": "市疾控" },
|
||
{ "source": "上海市营养食品质量监督检验站", "dest": "营养站" },
|
||
{ "source": "上海市水产品质量监督检验站", "dest": "上海水产站" },
|
||
{ "source": "上海师范大学分析测试中心", "dest": "上师大测试中心" },
|
||
{ "source": "上海市农业科学院农产品质量标准与检测技术研究所", "dest": "上海农科院" },
|
||
{ "source": "上海出入境检验检疫局动植物与食品检验检疫技术中心", "dest": "上海海关" },
|
||
{ "source": "中国检验认证集团上海有限公司", "dest": "中检上海" },
|
||
{ "source": "上海市农药研究所有限公司", "dest": "农药所" },
|
||
{ "source": "上海必诺检测技术服务有限公司", "dest": "必诺" },
|
||
{ "source": "福建省产品质量检验研究院", "dest": "福建质检院" },
|
||
{ "source": "复旦大学分析测试中心", "dest": "复旦测试中心" },
|
||
{ "source": "上海格瑞产品检测有限公司", "dest": "格瑞" },
|
||
{ "source": "中国疾病预防控制中心寄生虫病预防控制所", "dest": "中疾控寄生虫所" },
|
||
{ "source": "深圳出入境检验检疫局食品检验检疫技术中心", "dest": "深圳海关" },
|
||
{ "source": "谱尼测试集团上海有限公司", "dest": "谱尼上海" },
|
||
{ "source": "上海市粮油制品质量监督检验站", "dest": "粮油站" },
|
||
{ "source": "上海华测品标检测技术有限公司", "dest": "上海华测" },
|
||
{ "source": "品测(上海)检测科技有限公司", "dest": "品测" },
|
||
{ "source": "上海市食品药品包装材料测试所", "dest": "包材所" },
|
||
{ "source": "农业部水产品质量监督检验测试中心(上海)", "dest": "部水产上海" },
|
||
{ "source": "普研(上海)标准技术服务股份有限公司", "dest": "普研" },
|
||
{ "source": "上海实力可商品检验有限公司", "dest": "上海实力可" },
|
||
{ "source": "上海德诺产品检测有限公司", "dest": "德诺" },
|
||
{ "source": "复旦大学公共卫生学院", "dest": "复旦公卫" },
|
||
{ "source": "上海市食品药品检验所", "dest": "上海华测" },
|
||
{ "source": "上海华测品标检测技术有限公司", "dest": "上海药检所" },
|
||
{ "source": "宁波海关技术中心", "dest": "宁波海关" },
|
||
{ "source": "深圳市计量质量检测研究院", "dest": "深圳计量院" },
|
||
{ "source": "农业部水产品质量监督检验测试中心(上海)", "dest": "部水产上海" },
|
||
{ "source": "上海市粮油制品质量监督检疫站", "dest": "粮油站" }
|
||
],
|
||
|
||
//提示内容显示
|
||
textarea: "",
|
||
//等待提示
|
||
loading: false,
|
||
btnLoading: [false, false, false, false, false, false, false, false, false, false, false, false],
|
||
//正在进行实时更新替换, 大约需要30秒钟至几分钟不等, 请等待...
|
||
showLoadingTip: '系统正在操作中,请耐心的等待...',
|
||
|
||
//下拉框部分
|
||
SPLB_Option: [{
|
||
value: '1',
|
||
label: '食品大类'
|
||
}, {
|
||
value: '2',
|
||
label: '食品亚类'
|
||
}, {
|
||
value: '3',
|
||
label: '食品品种'
|
||
}, {
|
||
value: '4',
|
||
label: '食品小类'
|
||
}],
|
||
|
||
//检验项目替换(单) 新增20220809Add
|
||
strJYXM: { "source":{"JCDL":"","JCXL":"","LCYL":"","JCXM":""}, "dest": "", "type": "" },
|
||
//项目名称替换(单)
|
||
strXMMC: { "source": "", "dest": "", "type": "" },
|
||
//食品类别名称替换(单)
|
||
strSPLB: { "source": "", "dest": "", "type": "" },
|
||
//单项判定
|
||
strDXPD: { "source": "", "dest": "", "type": "" },
|
||
//任务来源
|
||
strRWLY: { "source": "", "dest": "", "type": "" },
|
||
|
||
|
||
}
|
||
},
|
||
mounted() {
|
||
var _this = this; //this指向vue
|
||
Vue.prototype.$loading = this.loading
|
||
|
||
|
||
|
||
axios.interceptors.response.use((response) => {
|
||
//debugger
|
||
console.log('正确的返回情况头数据',response.status)
|
||
return response;
|
||
}, function (error) {
|
||
console.log('错误的返回情况头数据',response.status)
|
||
// if (401 === error.response.status) {
|
||
// window.location = '/login';
|
||
// } else {
|
||
// return Promise.reject(error);
|
||
// }
|
||
});
|
||
|
||
_this.loading = true;
|
||
|
||
debugger;
|
||
let sendArr = [
|
||
axios.get('./strReplace/GetYCDArray'), //获取原产地的列表数组
|
||
|
||
axios.get('./JCXMNEW/GetAllJXCM') //从MongoDB里面获取需要进行检测大类亚类小类数据替换,项目分类替换按钮
|
||
]
|
||
axios.all(sendArr).then(axios.spread(function (resYCDArray, resJYXMArray) {
|
||
|
||
//先进行原产地部分的数据生成
|
||
for (var i = 0; i < resYCDArray.data.data.length; i++) {
|
||
_this.YCDDict.push({ "source": resYCDArray.data.data[i], "dest": resYCDArray.data.data[i] })
|
||
}
|
||
//原产地部分的数据再增加一个判断null的对象,因为后台接口需要此对象
|
||
_this.YCDDict.push({ "source": "null", "dest": "null" })
|
||
console.log(_this.YCDDict);
|
||
|
||
//然后进行项目分类的数据生成:
|
||
var i = 1;
|
||
var curIndex = 1; //这个是为了下拉框能够键值唯一增加的
|
||
var isMongoJCXM = false; //改造成如果使用mongodb的方式就为true否则为false,使用SQLSERVER改造的数据集
|
||
if (isMongoJCXM) {
|
||
var data = JSON.parse(resJYXMArray.data);
|
||
for (var i = 0; i < data.length; i++) {
|
||
|
||
var dataj = data[i].JCYL;
|
||
for (var j = 0; j < dataj.length; j++) {
|
||
var datak = dataj[j].JCXMXIAOLEI;
|
||
for (var k = 0; k < datak.length; k++) {
|
||
var datal = datak[k].JCXM;
|
||
for (var l = 0; l < datal.length; l++) {
|
||
var jianyanxiangmu = {
|
||
"JCDL": data[i].JCDL,
|
||
"JCYL": dataj[j].name,
|
||
"JCXL": datak[k].name,
|
||
"JCXM": datal[l].name,
|
||
"id": curIndex
|
||
}
|
||
curIndex++;
|
||
_this.JYXMDict.push({"source": JSON.stringify(jianyanxiangmu), "dest": ""});
|
||
//这个是为了下拉菜单好操作专门增加的内容220809Add
|
||
_this.JYXM_Option.push(jianyanxiangmu);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} else {
|
||
// _this.JYXMDict.push({ "source": JSON.stringify(jianyanxiangmu), "dest": "" });
|
||
//_this.JYXM_Option = resJYXMArray.data.data;
|
||
|
||
resJYXMArray.data.data.forEach(function (item, index) {
|
||
//console.log(item); //输出数组的每一个元素
|
||
_this.JYXMDict.push({"source": JSON.stringify(item), "dest": ""});
|
||
//这个是为了下拉菜单好操作专门增加的内容220809Add
|
||
_this.JYXM_Option.push(item);
|
||
});
|
||
|
||
}
|
||
console.log('JYXMDict', _this.JYXMDict);
|
||
console.log('JYXM_Option', _this.JYXM_Option);
|
||
_this.loading = false;
|
||
|
||
}));
|
||
|
||
|
||
},
|
||
methods: {
|
||
|
||
//显示进度内容
|
||
addNote(str) {
|
||
var aData = new Date().toLocaleString();;
|
||
this.textarea = aData + " " + str + '\r\n' + this.textarea;
|
||
},
|
||
//显示提示信息
|
||
showTip(strmessage) {
|
||
this.$message({
|
||
message: strmessage,
|
||
type: 'warning'
|
||
});
|
||
},
|
||
|
||
// btnid=当前按钮数组编号,dict=当前的字典,apiname=当前的访问接口名称,desc=当前的接口字段的中文描述
|
||
PublicChange(btnid, dict, apiname, desc) {
|
||
var _this = this; //this指向vue
|
||
_this.loading = true;
|
||
_this.btnLoading[btnid] = true;
|
||
_this.addNote("开始进行" + desc + "替换操作,共有" + dict.length + "个操作需要等待");
|
||
(async () => {
|
||
for (var i = 0; i < dict.length; i++) {
|
||
await axios({
|
||
url: "./strReplace/" + apiname + "?source=" + dict[i].source + "&dest=" + dict[i].dest
|
||
}).then((res) => {
|
||
_this.addNote("第" + (i + 1).toString() + "/" + dict.length + "个完成," + res.data.data);
|
||
console.log(res);
|
||
if (i == (dict.length - 1)) {
|
||
_this.addNote("此次" + desc + "替换操作全部完成,谢谢使用!");
|
||
_this.loading = false;
|
||
_this.btnLoading[btnid] = false;
|
||
}
|
||
});
|
||
}
|
||
})();
|
||
},
|
||
//单个替换的操作,dict格式为{"source":"","dest":"","type":""}
|
||
SingleChange(btnid, dict, apiname, desc) {
|
||
var _this = this; //this指向vue
|
||
_this.loading = true;
|
||
_this.btnLoading[btnid] = true;
|
||
_this.addNote("开始进行" + desc + "替换操作,请等待");
|
||
var curUrl = "./strReplace/" + apiname + "?source=" + dict.source + "&dest=" + dict.dest;
|
||
if (dict.type != "") {
|
||
curUrl = curUrl + "&type=" + dict.type
|
||
}
|
||
(async () => {
|
||
await axios({
|
||
url: curUrl
|
||
}).then((res) => {
|
||
console.log(res);
|
||
_this.addNote("此次" + desc + "替换操作完成," + res.data.data + "谢谢使用!");
|
||
_this.loading = false;
|
||
_this.btnLoading[btnid] = false;
|
||
});
|
||
})();
|
||
},
|
||
//0-替换项目分类
|
||
changeBatchJYXM() {
|
||
this.PublicChange(0, this.JYXMDict, "ReplaceJYXMWithDict", "项目分类")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[项目分类]")
|
||
},
|
||
//0.1-替换单个项目分类
|
||
changeJYXM() {
|
||
if (this.strJYXM.source == "") {
|
||
this.showTip("请输入需要刷新的项目分类名称!")
|
||
return;
|
||
}
|
||
this.SingleChange(5, { "source": JSON.stringify(this.strJYXM.source), "dest": "", "type": "" }, "ReplaceJYXMWithDict", "项目分类")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[项目分类]")
|
||
},
|
||
//0.2-项目分类关联显示
|
||
showLeiXingDetail(e) {
|
||
console.log('strJYXM.source', this.strJYXM.source.JCXM)
|
||
|
||
//let curJYXMSel = Enumerable.From(this.JYXM_Option).Where(function (x) { return x.JCXM == this.strJYXM.source.JCXM }).ToArray();
|
||
let curJYXMSel = Enumerable.From(this.JYXM_Option).Where(function (x) { return x.JCXM == e }).First();
|
||
console.log('curJYXMSel', curJYXMSel);
|
||
|
||
this.strJYXM.source.JCDL = curJYXMSel.JCDL;
|
||
this.strJYXM.source.JCXL = curJYXMSel.JCXL;
|
||
this.strJYXM.source.JCYL = curJYXMSel.JCYL;
|
||
|
||
},
|
||
//1-替换省份
|
||
changeProvince() {
|
||
this.PublicChange(1, this.ProvinceDict, "ReplaceProvinceWithDict", "省份")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[省份]")
|
||
},
|
||
//2-替换区县
|
||
changeDistrict() {
|
||
this.PublicChange(2, this.DistrictDict, "ReplaceDistrictWithDict", "区县")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[区县]")
|
||
},
|
||
//3-替换括号方法
|
||
changeBrackets() {
|
||
var _this = this; //this指向vue
|
||
_this.loading = true;
|
||
_this.btnLoading[3] = true;
|
||
_this.addNote("开始进行括号替换操作,共有" + _this.bracketsDict.length + "个操作需要等待");
|
||
(async () => {
|
||
for (var i = 0; i < _this.bracketsDict.length; i++) {
|
||
await axios({
|
||
url: "./strReplace/ReplaceBracketsWithDict?field=" + _this.bracketsDict[i].field + "¬e=" + _this.bracketsDict[i].note + "&lr=" + _this.bracketsDict[i].lr
|
||
}).then((res) => {
|
||
_this.addNote("第" + (i + 1).toString() + "/" + _this.bracketsDict.length + "个完成," + res.data.data);
|
||
console.log(res);
|
||
if (i == (_this.bracketsDict.length - 1)) {
|
||
_this.addNote("此次括号替换操作全部完成,谢谢使用!");
|
||
_this.loading = false;
|
||
_this.btnLoading[3] = false;
|
||
}
|
||
});
|
||
}
|
||
})();
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[括号]")
|
||
},
|
||
//4-替换抽样地点方法
|
||
changeCYDD() {
|
||
this.PublicChange(4, this.CYDDDict, "ReplaceCYDDWithDict", "抽样地点")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[抽样地点]")
|
||
},
|
||
//5-替换项目名称方法(单个)
|
||
changeXMMC() {
|
||
if (this.strXMMC.source == "" || this.strXMMC.dest == "") {
|
||
this.showTip("请输入旧项目名称以及新项目名称!")
|
||
return;
|
||
}
|
||
this.SingleChange(5, { "source": this.strXMMC.source, "dest": this.strXMMC.dest, "type": "" }, "ReplaceXMMCWithDict", "项目名称")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[项目名称]")
|
||
},
|
||
//5.1-批量替换项目名称方法(多个循环)
|
||
changeBatchXMMC() {
|
||
//var _this = this; //this指向vue
|
||
//_this.loading = true;
|
||
//_this.btnLoading[5] = true;
|
||
//_this.addNote("开始进行批量替换项目名称操作,共有" + _this.XMMCDict.length + "个操作需要等待");
|
||
//this.SingleChange(5, { "source": this.strXMMC.source, "dest": this.strXMMC.dest, "type": "" }, "ReplaceXMMCWithDict", "项目名称")
|
||
|
||
this.PublicChange(5, this.XMMCDict, "ReplaceXMMCWithDict", "项目名称")
|
||
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_批量替换[项目名称]")
|
||
},
|
||
|
||
|
||
//6-替换原产地
|
||
changeYCD() {
|
||
this.PublicChange(6, this.YCDDict, "ReplaceYCDWithDict", "原产地")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[原产地]")
|
||
},
|
||
//7-替换网络平台名称
|
||
changeWLPTMC() {
|
||
this.PublicChange(7, this.WLPTMCDict, "ReplaceWLPTMCWithDict", "网络平台名称")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[网络平台名称]")
|
||
},
|
||
//8-替换检验机构简称
|
||
changeJYJGJC() {
|
||
this.PublicChange(8, this.JYJGJCDict, "ReplaceJYJGJCWithDict", "检验机构简称")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[检验机构简称]")
|
||
},
|
||
//9-替换食品类别名称(单个多一个参数)
|
||
changeSPLB() {
|
||
if (this.strSPLB.source == "" || this.strSPLB.dest == "" || this.strSPLB.type == "") {
|
||
this.showTip("请选择类型并且输入旧食品类别名称以及新食品类别名称!")
|
||
return;
|
||
}
|
||
this.SingleChange(9, { "source": this.strSPLB.source, "dest": this.strSPLB.dest, "type": this.strSPLB.type }, "ReplaceSPLBWithDict", "食品类别名称")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[食品类别名称 " + this.strSPLB.source + "|" + this.strSPLB.dest + "|" + this.strSPLB.type + "]")
|
||
},
|
||
//10-替换单项判定(单个)
|
||
changeDXPD() {
|
||
if (this.strDXPD.source == "" || this.strDXPD.dest == "") {
|
||
this.showTip("请输入旧单项判定以及新单项判定!")
|
||
return;
|
||
}
|
||
this.SingleChange(9, { "source": this.strDXPD.source, "dest": this.strDXPD.dest, "type": "" }, "ReplaceDXPDWithDict", "单项判定")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[单项判定 " + this.strDXPD.source + "|" + this.strDXPD.dest + "]")
|
||
},
|
||
//11-替换任务来源(单个)
|
||
changeRWLY() {
|
||
if (this.strRWLY.source == "" || this.strRWLY.dest == "") {
|
||
this.showTip("请输入旧任务来源以及新任务来源!")
|
||
return;
|
||
}
|
||
this.SingleChange(9, { "source": this.strRWLY.source, "dest": this.strRWLY.dest, "type": "" }, "ReplaceRWLYWithDict", "任务来源")
|
||
//增加日志20211109
|
||
addlog("SQL查询", "修改数据_替换[任务来源 " + this.strRWLY.source + "|" + this.strRWLY.dest + "]")
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
})
|
||
///////////////////////////////////////////////////
|
||
|
||
|
||
//加上日志20211109
|
||
function addlog(otype, ocontent, ouser) {
|
||
var curUser = "";
|
||
if (sessionStorage['userName'] != null) {
|
||
curUser = sessionStorage['userName']
|
||
} else {
|
||
curUser = ouser
|
||
}
|
||
|
||
$.get(Gaddress + "/operatelog/addlog?ouser=" + curUser + "&otype=" + otype + "&ocontent=" + ocontent.substring(0, 2500), {})
|
||
.then(function (e) { return true })
|
||
}
|
||
|
||
|
||
|
||
</script>
|
||
|
||
|
||
<style>
|
||
.el-header, .el-footer {
|
||
background-color: #B3C0D1;
|
||
color: #333;
|
||
text-align: center;
|
||
line-height: 60px;
|
||
}
|
||
|
||
/* .el-aside {
|
||
background-color: #D3DCE6;
|
||
color: #333;
|
||
text-align: center;
|
||
line-height: 200px;
|
||
}*/
|
||
|
||
.el-main {
|
||
background-color: #E9EEF3;
|
||
color: #333;
|
||
text-align: center;
|
||
line-height: 56px;
|
||
}
|
||
.el-button{
|
||
min-width:200px;
|
||
}
|
||
|
||
body > .el-container {
|
||
margin-bottom: 40px;
|
||
}
|
||
|
||
/* .el-container:nth-child(5) .el-aside,
|
||
.el-container:nth-child(6) .el-aside {
|
||
line-height: 260px;
|
||
}
|
||
|
||
.el-container:nth-child(7) .el-aside {
|
||
line-height: 320px;*/
|
||
}
|