代码同步 02.13

master
张博文 3 months ago
parent 74f13d0d91
commit d4bda38391

@ -51,12 +51,3 @@ export function getBusinessNameList(query) {
params: query, params: query,
}) })
} }
// 设置默认码规则
export function setDefaultRuleCode(params) {
return request({
url: '/basic/business-info/setDefaultRuleCode',
method: 'put',
params
})
}

@ -29,12 +29,6 @@
</el-table-column> </el-table-column>
<el-table-column label="商户名称" align="center" prop="businessName" /> <el-table-column label="商户名称" align="center" prop="businessName" />
<el-table-column label="商户标识码" align="center" prop="businessId" /> <el-table-column label="商户标识码" align="center" prop="businessId" />
<el-table-column label="商户码规则" align="center" class-name="small-padding fixed-width" prop="codeRuleId" width="120" >
<template v-slot="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="editCodeRule(scope.row)"
v-hasPermi="['basic:business-info:update']">配置</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="子系统" align="center" prop="codeRuleId" /> --> <!-- <el-table-column label="子系统" align="center" prop="codeRuleId" /> -->
<!-- 用户暂无认证状态修改功能 --> <!-- 用户暂无认证状态修改功能 -->
<!-- <el-table-column label="认证状态" align="center" prop="verifyState" > <!-- <el-table-column label="认证状态" align="center" prop="verifyState" >
@ -67,22 +61,6 @@
/> />
</div> </div>
<!-- 对话框(添加) -->
<!-- <el-dialog :title="title" :visible.sync="openadd" width="500px" v-dialogDrag append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" label-position="top">
<el-form-item label="商户名称" prop="businessName">
<el-input v-model="form.businessName" placeholder="请输入商户名称" />
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancelAdd"> </el-button>
</div>
</el-dialog> -->
<!-- 对话框(修改) --> <!-- 对话框(修改) -->
<el-dialog :title="title" :visible.sync="openedit" width="500px" v-dialogDrag append-to-body> <el-dialog :title="title" :visible.sync="openedit" width="500px" v-dialogDrag append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-position="top" > <el-form ref="form" :model="form" :rules="rules" label-position="top" >
@ -121,80 +99,6 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 码规则配置 -->
<el-drawer
title="码规则配置"
:visible.sync="openCodeRule"
@close="showAddBtn = true"
direction="rtl"
class="code-rules">
<div>
<div class="rules-area" v-for="(item,index) in rulesContent" :key="index">
<div class="rules-title flex-jcenter">
<div>{{item.codeRuleName}}
<!-- <el-tag v-if="item.id" style="margin-left: 6px;" type="success"></el-tag> -->
</div>
<div class="rules-button">
<el-button v-if="item.isEdit" @click="$set(rulesContent[index],'isEdit',false)" type="text"></el-button>
<el-button v-if="!item.isEdit" @click="cancelCodeEdit(index)" type="text"></el-button>
<el-button v-if="item.id && item.id != defaultCodeId" @click="delCode(item)" type="text"></el-button>
<el-button v-if="item.id && item.id != defaultCodeId" @click="setDelRuleCode(item)" type="text"></el-button>
</div>
</div>
<div class="rules-content" v-if="item.id">
<div class="rules-item">
<span>码规则名称</span>
<span>{{item.codeRuleName}}</span>
</div>
<div class="rules-item">
<span>码规则</span>
<span>{{item.codeRuleFormat}}</span>
</div>
<div class="rules-item">
<span>码示例</span>
<span>{{filterText(item.codeType)}}</span>
</div>
<div class="rules-item">
<span>
<span style="color: red;" v-if="!item.isEdit">*</span>
码类型
<el-tooltip class="item" effect="dark" placement="top">
<div slot="content">普通码无需验证即扫即查<br/>明暗码带验证码的二维码扫码后<br/>需输入正确的验证码才能查询</div>
<i class="el-icon-warning-outline"></i>
</el-tooltip>
</span>
<span v-if="item.isEdit">{{filterType(item.codeType)}}</span>
<el-select v-if="!item.isEdit" v-model="item.codeType" placeholder="请选择">
<el-option label="普通码" :value="0"></el-option>
<el-option label="明暗码" :value="1" disabled></el-option>
</el-select>
</div>
<el-button v-if="!item.isEdit" type="primary" @click="submitCodeRule(index)"></el-button>
</div>
<div v-if="!item.isEdit && !item.id" class="rules-content">
<el-form ref="formCode" :model="formCode" :rules="rulesCode" label-width="100px">
<el-form-item label="码规则名称" prop="codeRuleName">
<el-input v-model="formCode.codeRuleName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="码规则" prop="codeRuleFormat">
<el-input v-model="formCode.codeRuleFormat" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="码类型" prop="codeType">
<el-select v-model="formCode.codeType" placeholder="请选择">
<el-option label="普通码" :value="0"></el-option>
<el-option label="明暗码" :value="1" disabled></el-option>
</el-select>
</el-form-item>
<el-button v-if="!item.isEdit" type="primary" @click="submitCodeRule(index)"></el-button>
</el-form>
</div>
</div>
<div class="rules-btn-area" @click="rulesContent.push({}),showAddBtn=false" v-if="showAddBtn">
<i style="font-size: 14px;" class="el-icon-plus"></i>
<div class="buttonText">添加自定义码规则</div>
</div>
</div>
</el-drawer>
<el-dialog <el-dialog
title="标识二维码" title="标识二维码"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
@ -208,8 +112,7 @@
</template> </template>
<script> <script>
import { createBusinessInfo, updateBusinessInfo, deleteBusinessInfo, getBusinessInfo, getBusinessInfoPage, setDefaultRuleCode } from "@/api/basic/businessInfo"; import { createBusinessInfo, updateBusinessInfo, deleteBusinessInfo, getBusinessInfo, getBusinessInfoPage } from "@/api/basic/businessInfo";
import { getBusinessRule , updateBusinessRule , getBusinessRuleList , createBusinessRule, listByBusinessId,deleteBusinessRule} from '@/api/identity/businessRule';
import { getAreaTree } from "@/api/system/area"; import { getAreaTree } from "@/api/system/area";
import SearchInfo from "@/components/Customer/SearchForm/index.vue" import SearchInfo from "@/components/Customer/SearchForm/index.vue"
import EmptyTable from '@/components/EmptyTable' import EmptyTable from '@/components/EmptyTable'
@ -264,26 +167,6 @@ export default {
placeholder:'请输入', placeholder:'请输入',
onEnterKeyUp:this.handleQuery onEnterKeyUp:this.handleQuery
}, },
// {
// key:'verifyState',
// itemType:'select',
// label:'',
// placeholder:'',
// options:[
// {
// label:'',
// value:'0',
// },
// {
// label:'',
// value:'1',
// },
// {
// label:'',
// value:'2',
// },
// ],
// },
], ],
}, },
@ -355,77 +238,6 @@ export default {
correctLevel: QRCode.CorrectLevel.H correctLevel: QRCode.CorrectLevel.H
}) })
}, },
filterType(type){
switch (type){
case 0:
return '普通码';
case 1:
return '明暗码';
case 2:
return 'http://taas.mychain.com/1304120058656711/55bb';
default:
return;
}
},
filterText(type){
switch (type){
case 0:
return 'http://taas.mychain.com/1304120058656711/5566';
case 1:
return 'http://taas.mychain.com/1304120058656711/aabb';
case 2:
return 'http://taas.mychain.com/1304120058656711/55bb';
default:
return;
}
},
/** 商户码规则编辑 */
async editCodeRule(row){
this.rowInfo = row;
this.thisCodeBelongBusinessId = row.id
this.defaultCodeId = row.codeRuleId
console.log('码规则编辑',this.defaultCodeId);
let res = await listByBusinessId({businessId:row.businessId});
res.data.map(item=>item.isEdit = true);
this.rulesContent = res.data;
this.openCodeRule = true;
},
/** 商户码规则编辑提交 */
async submitCodeRule(index){
let form = this.rulesContent[index];
if(form.id){
let res = await updateBusinessRule(form);
if(res.data){
this.$message({
message: '修改成功',
type: 'success'
});
}
this.$set(this.rulesContent[index],'isEdit',true);
}else{
let form = {
...this.formCode,
businessName: this.rowInfo.businessName,
businessId: this.rowInfo.businessId,
};
let res = await createBusinessRule(form);
if(res.data){
this.$message({
message: '创建成功',
type: 'success'
});
this.resetCode();
this.showAddBtn = true;
this.editCodeRule(this.rowInfo);
}
}
},
/** 商户码规则编辑取消按钮 */
// cancelCodeRule() {
// this.openCodeRule = false
// //this.reset()
// },
/** 地区查询列表 */ /** 地区查询列表 */
getAreaList() { getAreaList() {
getAreaTree().then(response => { getAreaTree().then(response => {
@ -469,39 +281,6 @@ export default {
this.openedit = false; this.openedit = false;
this.reset(); this.reset();
}, },
cancelCodeEdit(index){
if(this.rulesContent[index].id){
this.$set(this.rulesContent[index],'isEdit',!this.rulesContent[index].isEdit);
}else{
this.resetCode();
this.rulesContent.splice(index,1);
this.showAddBtn = true;
}
},
/* 码规则删除 */
delCode(item){
this.$modal.confirm('是否确认删除该码规则?').then(function() {
return deleteBusinessRule(item.id);
}).then(() => {
this.$modal.msgSuccess("删除成功");
this.editCodeRule(this.rowInfo);
}).catch(() => {});
},
/* 设为默认码规则 */
setDelRuleCode(item){
let id = this.thisCodeBelongBusinessId
let codeId = item.id
this.$modal.confirm('是否确认设为默认码规则?').then(function() {
return setDefaultRuleCode({
id,
codeId,
});
}).then(() => {
this.$modal.msgSuccess("设置成功");
this.rowInfo.codeRuleId = codeId
this.editCodeRule(this.rowInfo);
}).catch(() => {});
},
/** 表单重置 */ /** 表单重置 */
reset() { reset() {

@ -30,25 +30,12 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="码规则名称" align="center" prop="codeRuleName" > <el-table-column label="商户标识码" align="center" prop="businessId" />
<template slot-scope="{ row }"> <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
<div>
<span>{{ row.codeRuleName }}</span>
<el-button type="text" icon="el-icon-copy-document" @click.stop="copyContent(row.codeRuleName)"></el-button>
</div>
</template>
</el-table-column>
<el-table-column label="码规则" align="center" prop="codeRuleFormat" >
<template slot-scope="{ row }">
<div>
<span>{{ row.codeRuleFormat }}</span>
<el-button type="text" icon="el-icon-copy-document" @click.stop="copyContent(row.codeRuleFormat)"></el-button>
</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button type="text" @click="handleAdds(row)" style="margin-left: 16px;">生成码包</el-button> <el-button type="text" @click="handleAdds(row)" style="margin-left: 16px;">生成码包</el-button>
<el-button type="text" @click="goToRecord(row)" style="margin-left: 16px;">生成记录</el-button>
</template> </template>
</el-table-column> </el-table-column>
<div slot="empty"> <div slot="empty">
@ -70,18 +57,6 @@
<div class="drawerContent"> <div class="drawerContent">
<el-form ref="form" :rules="rules" :model="form" label-width="300px"> <el-form ref="form" :rules="rules" :model="form" label-width="300px">
<div class="drawerTitle">生码信息</div> <div class="drawerTitle">生码信息</div>
<el-form-item label="码规则" prop="codeRuleFormat">
<div>{{this.form.codeRuleFormat}}</div>
</el-form-item>
<el-form-item label="码类型" prop="codeType">
<div>
<span v-if="form.codeType!==undefined">{{codeTypeList[form.codeType].label}}</span>
<el-tooltip class="item" effect="dark" placement="top-start">
<div slot="content" v-html="drawerTypeTip"></div>
<i class="el-icon-warning-outline"></i>
</el-tooltip>
</div>
</el-form-item>
<el-form-item label="字符长度 (起止:18-20位)" prop="charLength"> <el-form-item label="字符长度 (起止:18-20位)" prop="charLength">
<el-slider class="drawerslider" :min="18" :max="20" v-model="form.charLength"></el-slider> <el-slider class="drawerslider" :min="18" :max="20" v-model="form.charLength"></el-slider>
</el-form-item> </el-form-item>
@ -134,7 +109,7 @@
<script> <script>
import SearchInfo from '@/components/Customer/SearchForm' import SearchInfo from '@/components/Customer/SearchForm'
import EmptyBound from '@/components/EmptyTable' import EmptyBound from '@/components/EmptyTable'
import { updateBusinessRule, deleteBusinessRule, getBusinessRulePage, exportBusinessRuleExcel } from "@/api/identity/businessRule"; import { getBusinessInfoPage } from "@/api/basic/businessInfo";
import { createGenerateRecord } from '@/api/identity/generateRecord'; import { createGenerateRecord } from '@/api/identity/generateRecord';
import { getBlockState } from '@/api/product/harvestBatch'; import { getBlockState } from '@/api/product/harvestBatch';
import { getDealerInfoByGoodsId } from '@/api/basic/dealerInfo'; import { getDealerInfoByGoodsId } from '@/api/basic/dealerInfo';
@ -161,9 +136,6 @@ export default {
// //
open: false, open: false,
openDraw: false, openDraw: false,
//
outerVisible: false,
nnerVisible: false,
// //
queryParams: { queryParams: {
pageNo: 1, pageNo: 1,
@ -181,11 +153,6 @@ export default {
], ],
// //
form: {}, form: {},
//
formDrawer: {
rules: '^http://taas.mychain.com/1304120058656711/(.*)',
type: '普通码',
},
// //
rules: { rules: {
generateRecordId: [{ required: true, message: "记录编码不能为空", trigger: "blur" }], generateRecordId: [{ required: true, message: "记录编码不能为空", trigger: "blur" }],
@ -224,11 +191,11 @@ export default {
filterText(){ filterText(){
switch (this.form.charType){ switch (this.form.charType){
case 0: case 0:
return 'http://taas.mychain.com/1304120058656711/5566'; return 'http://taas.mychain.com/trace?id=5566';
case 1: case 1:
return 'http://taas.mychain.com/1304120058656711/aabb'; return 'http://taas.mychain.com/trace?id=aabb';
case 2: case 2:
return 'http://taas.mychain.com/1304120058656711/55bb'; return 'http://taas.mychain.com/trace?id=55bb';
default: default:
return; return;
} }
@ -242,7 +209,7 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
// //
getBusinessRulePage(this.queryParams).then(response => { getBusinessInfoPage(this.queryParams).then(response => {
this.list = response.data.list; this.list = response.data.list;
this.total = response.data.total; this.total = response.data.total;
this.loading = false; this.loading = false;
@ -302,31 +269,12 @@ export default {
} }
console.log('批次列表',res); console.log('批次列表',res);
}, },
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id;
updateBusinessRule(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改码规则";
});
},
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (!valid) { if (!valid) {
return; return;
} }
// //
// if (this.form.id != null) {
// updateGenerateRecord(this.form).then(response => {
// this.$modal.msgSuccess("");
// this.open = false;
// this.getList();
// });
// return;
// }
// //
createGenerateRecord(this.form).then(res => { createGenerateRecord(this.form).then(res => {
if(res.data){ if(res.data){
@ -338,30 +286,6 @@ export default {
}); });
}); });
}, },
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id;
this.$modal.confirm('是否确认删除标识码生成记录编号为"' + id + '"的数据项?').then(function() {
return deleteBusinessRule(id);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
//
let params = {...this.queryParams};
params.pageNo = undefined;
params.pageSize = undefined;
this.$modal.confirm('是否确认导出所有标识码生成记录数据项?').then(() => {
this.exportLoading = true;
return exportBusinessRuleExcel(params);
}).then(response => {
this.$download.excel(response, '标识码生成记录.xls');
this.exportLoading = false;
}).catch(() => {});
},
// - // -
handleClose(){ handleClose(){
this.openDraw = false; this.openDraw = false;
@ -386,6 +310,15 @@ export default {
}); });
}); });
}, },
goToRecord(row) {
this.$router.push({
path: '/code/scan-record',
query: {
businessName: row.businessName,
},
});
},
} }
}; };
</script> </script>

@ -207,7 +207,7 @@ export default {
} }
}; };
}, },
created() { mounted() {
this.getList(); this.getList();
}, },
methods: { methods: {
@ -256,20 +256,8 @@ export default {
}, },
// //
async downloadImage(row) { async downloadImage(row) {
// const loading = this.$loading({
// lock: true,
// text: 'Loading',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'
// });
let url = row.fileUrl; let url = row.fileUrl;
window.open(url,'_self'); window.open(url,'_self');
// let res = await createGenerateRecordZip(row);
// if( res.data && res.data.fileUrl ){
// let url = res.data.fileUrl;
// window.open(url,'_self');
// loading.close();
// }
}, },
async downloadNoTextImage(row) { async downloadNoTextImage(row) {
if (row.imageFileUrl) { if (row.imageFileUrl) {
@ -281,6 +269,10 @@ export default {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
const { query: { businessName } } = this.$route;
if (businessName) {
this.queryParams.belongBusinessName = businessName;
}
this.loading = true; this.loading = true;
// //
getGenerateRecordPage(this.queryParams).then(response => { getGenerateRecordPage(this.queryParams).then(response => {

@ -10,7 +10,6 @@
:showSearch.sync="showSearch" :showSearch.sync="showSearch"
@handleQuery="handleQuery" @handleQuery="handleQuery"
@resetQuery="resetQuery" @resetQuery="resetQuery"
@selectChage="selectChage"
></SearchInfo> ></SearchInfo>
</div> </div>
@ -29,7 +28,6 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="设备名称" align="center" prop="deviceName" width="150" /> <el-table-column label="设备名称" align="center" prop="deviceName" width="150" />
<el-table-column label="地块名称" align="center" prop="landName" width="150" />
<el-table-column label="网关类型" align="center" prop="gatewayType" width="150"> <el-table-column label="网关类型" align="center" prop="gatewayType" width="150">
<template v-slot="{ row }"> <template v-slot="{ row }">
<span>{{gatewayTypeOptions[row.gatewayType-1].label}}</span> <span>{{gatewayTypeOptions[row.gatewayType-1].label}}</span>
@ -103,17 +101,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="所属地块" prop="landId">
<el-select class="w100" :disabled="isDisable" ref="landInfo" v-model="form.landId" placeholder="请先选择所属商户">
<el-option
v-for="(item,index) in landNameList"
:key="index"
:label="item.landName"
:value="item.landId"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备名称" prop="deviceName"> <el-form-item label="设备名称" prop="deviceName">
<el-input class="w100" v-model="form.deviceName" placeholder="请输入设备名称" /> <el-input class="w100" v-model="form.deviceName" placeholder="请输入设备名称" />
@ -268,7 +255,6 @@
<script> <script>
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import { getBusinessNameList } from '@/api/basic/businessInfo'; import { getBusinessNameList } from '@/api/basic/businessInfo';
// import { getBusinessNamesByLandId } from '@/api/product/landInfo';
import { createDeviceInfo, updateDeviceInfo, deleteDeviceInfo, getDeviceInfo, getDeviceInfoPage, exportDeviceInfoExcel , changeEnabled , changeSwitch } from "@/api/iot/deviceInfo"; import { createDeviceInfo, updateDeviceInfo, deleteDeviceInfo, getDeviceInfo, getDeviceInfoPage, exportDeviceInfoExcel , changeEnabled , changeSwitch } from "@/api/iot/deviceInfo";
import { getAllEnvType } from '@/api/iot/envType'; import { getAllEnvType } from '@/api/iot/envType';
import { getAVGEnvDatasByTypeIds } from '@/api/iot/envData'; import { getAVGEnvDatasByTypeIds } from '@/api/iot/envData';
@ -356,13 +342,6 @@ export default {
options: [], options: [],
isNet: true, isNet: true,
}, },
{
key:'landName',
itemType:'select',
label:'商户地块',
placeholder:'请选择',
options: [],
},
{ {
key:'deviceName', key:'deviceName',
itemType:'input', itemType:'input',
@ -416,12 +395,10 @@ export default {
switchOn: [{ required: true, message: "开关是否开启不能为空", trigger: "blur" }], switchOn: [{ required: true, message: "开关是否开启不能为空", trigger: "blur" }],
belongBusinessId: [{ required: true, message: "所属商户id不能为空", trigger: "blur" }], belongBusinessId: [{ required: true, message: "所属商户id不能为空", trigger: "blur" }],
belongBusinessName: [{ required: true, message: "所属商户名称不能为空", trigger: "blur" }], belongBusinessName: [{ required: true, message: "所属商户名称不能为空", trigger: "blur" }],
landId: [{ required: true, message: "所属地块名称不能为空", trigger: "blur" }],
deviceName: [{ required: true, message: "设备名称不能为空", trigger: "blur" }], deviceName: [{ required: true, message: "设备名称不能为空", trigger: "blur" }],
gatewayType: [{ required: true, message: "网关类型不能为空", trigger: "blur" }], gatewayType: [{ required: true, message: "网关类型不能为空", trigger: "blur" }],
}, },
businessNameList:[], businessNameList:[],
landNameList: [],
gatewayTypeOptions:[ gatewayTypeOptions:[
{ {
label:'必联', label:'必联',
@ -512,26 +489,6 @@ export default {
} }
}, },
async selectChage({ value, type, book }) {
if (type != 'landName') {
this.queryParams.landName = ''
}
if (!book) {
return
}
let res = await getBusinessNamesByLandId({belongBusinessId: this.queryParams.belongBusinessId});
if(res.data){
let list = [];
res.data.map(item=>{
list.push({
label: item.landName,
value: item.landName,
});
});
this.dataSource[1].options = list;
}
},
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -598,7 +555,6 @@ export default {
data.deviceType = String(data.deviceType); data.deviceType = String(data.deviceType);
data.controllerType = Number(data.controllerType); data.controllerType = Number(data.controllerType);
data.envType = Number(data.envType); data.envType = Number(data.envType);
this.linkageDate(data.belongBusinessId);
this.form = data; this.form = data;
this.open = true; this.open = true;
this.title = "修改设备信息"; this.title = "修改设备信息";
@ -685,7 +641,6 @@ export default {
changeBusiness(e){ changeBusiness(e){
this.$nextTick(()=>{ this.$nextTick(()=>{
this.form.belongBusinessName = this.$refs.business.selected.label; this.form.belongBusinessName = this.$refs.business.selected.label;
this.linkageDate(e);
}); });
}, },
changeLandInfo(e){ changeLandInfo(e){
@ -727,12 +682,6 @@ export default {
} }
loading.close(); loading.close();
}, },
async linkageDate(e){
let res = await getBusinessNamesByLandId({belongBusinessId:e});
if(res.data){
this.landNameList = res.data;
}
},
async openEnvDataDialog(row) { async openEnvDataDialog(row) {
// //

@ -10,7 +10,6 @@
:showSearch.sync="showSearch" :showSearch.sync="showSearch"
@handleQuery="handleQuery" @handleQuery="handleQuery"
@resetQuery="resetQuery" @resetQuery="resetQuery"
@selectChage="selectChage"
></SearchInfo> ></SearchInfo>
</div> </div>
@ -50,8 +49,8 @@
<script> <script>
import { createEnvData, updateEnvData, deleteEnvData, getEnvData, getEnvDataPage, exportEnvDataExcel } from "@/api/iot/envData"; import { createEnvData, updateEnvData, deleteEnvData, getEnvData, getEnvDataPage, exportEnvDataExcel } from "@/api/iot/envData";
import { getAllEnvType } from "@/api/iot/envType";
import { getBusinessNameList } from '@/api/basic/businessInfo'; import { getBusinessNameList } from '@/api/basic/businessInfo';
// import { getBusinessNamesByLandId } from '@/api/product/landInfo';
import SearchInfo from "@/components/Customer/SearchForm/index.vue" import SearchInfo from "@/components/Customer/SearchForm/index.vue"
import EmptyTable from '@/components/EmptyTable' import EmptyTable from '@/components/EmptyTable'
export default { export default {
@ -100,13 +99,6 @@ export default {
options: [], options: [],
isNet: true, isNet: true,
}, },
{
key:'landName',
itemType:'select',
label:'商户地块',
placeholder:'请选择',
options: [],
},
{ {
key:'envTypeId', key:'envTypeId',
itemType:'select', itemType:'select',
@ -123,7 +115,6 @@ export default {
belongBusinessName: [{ required: true, message: "所属商户名称不能为空", trigger: "blur" }], belongBusinessName: [{ required: true, message: "所属商户名称不能为空", trigger: "blur" }],
}, },
businessNameList:[], businessNameList:[],
landNameList: [],
envTypeList: [], envTypeList: [],
}; };
}, },
@ -142,33 +133,14 @@ export default {
this.dataSource[0].options = res.data; this.dataSource[0].options = res.data;
this.businessNameList = res.data; this.businessNameList = res.data;
let resT = await getBusinessNameList(); let { data } = await getAllEnvType();
resT.data.map(item=>{ this.envTypeList = data;
item.label = item.businessName; this.dataSource[1].options = this.envTypeList.map(item => {
item.value = item.id; return {
}); label: item.envTypeName,
this.dataSource[2].options = resT.data; value: item.id,
this.envTypeList = resT.data; };
},
async selectChage({ value, type, book }) {
if (type != 'landName') {
this.queryParams.landName = ''
}
if (!book) {
return
}
let res = await getBusinessNamesByLandId({belongBusinessId: this.queryParams.belongBusinessId});
if(res.data){
let list = [];
res.data.map(item=>{
list.push({
label: item.landName,
value: item.landName,
});
}); });
this.dataSource[1].options = list;
}
}, },
/** 查询列表 */ /** 查询列表 */

@ -69,51 +69,16 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<!--
<el-table-column label="商品信息" align="center" prop="" width="110">
<template v-slot="{row}">
<el-button type="text" @click="toSetting(row,'/production/setting/goodsInfo')"></el-button>
</template>
</el-table-column>
<el-table-column label="环节信息" align="center" prop="" width="110">
<template v-slot="{row}">
<el-button type="text" @click="toSetting(row,'/production/setting/linkInfo')"></el-button>
</template>
</el-table-column>
<el-table-column label="农事活动" align="center" prop="" width="110">
<template v-slot="{row}">
<el-button type="text" @click="toSetting(row,'/production/setting/activeInfo')"></el-button>
</template>
</el-table-column>
-->
<el-table-column label="小程序" align="center" prop="" width="110"> <el-table-column label="小程序" align="center" prop="" width="110">
<template v-slot="{row}"> <template v-slot="{row}">
<el-button type="text" @click="openSelectLanguage(row, 1)">配置</el-button> <el-button type="text" @click="openSelectLanguage(row, 1)">配置</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="采收批次说明" align="center" prop="remarks" /> <el-table-column label="采收批次说明" align="center" prop="remarks" />
<!--
<el-table-column label="状态" align="center" prop="blockState" >
<template slot-scope="{row}">
<div class="table-column">
<el-tag
:type="row.blockState==0?'info':row.blockState == 1?'success':'danger'">
{{filterText(row.blockState)}}
</el-tag>
</div>
</template>
</el-table-column>
-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="{row}"> <template v-slot="{row}">
<el-button size="mini" type="text" @click="openSelectLanguage(row, 2)" <el-button size="mini" type="text" @click="openSelectLanguage(row, 2)"
v-hasPermi="['product:harvest-batch:query']">预览</el-button> v-hasPermi="['product:harvest-batch:query']">预览</el-button>
<!--
<el-button slot="reference" size="mini" type="text" v-if="row.blockState == 1"
v-hasPermi="['product:harvest-batch:update']" @click="handleState(row,'freeze')">冻结</el-button>
<el-button slot="reference" size="mini" type="text" v-if="row.blockState == 2"
v-hasPermi="['product:harvest-batch:update']" @click="handleState(row,'active')">激活</el-button>
-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -169,7 +134,6 @@ import {
getHarverstFreeze, getHarverstFreeze,
initConfig, initConfig,
} from "@/api/production/harvestBatch"; } from "@/api/production/harvestBatch";
import { getFirstScanInfoByBatchId } from '@/api/identity/scanRecord';
import { getAllLanguageType } from "@/api/system/languageType"; import { getAllLanguageType } from "@/api/system/languageType";
import SearchForm from '@/components/Customer/SearchForm' import SearchForm from '@/components/Customer/SearchForm'
import appPreview from '@/components/Customer/appPreview' import appPreview from '@/components/Customer/appPreview'

@ -103,200 +103,6 @@
</div> </div>
--> -->
<!-- ///////////////////////////////////////// ///////////////////////////////////////// -->
<!--
<div class="app-container-search main-bgcolor main-radius setting-container">
<div class="setting-title flex-jcenter">
<div class="">
<span class="mr-6">农事活动</span>
</div>
<el-button @click="openSelectPlan"></el-button>
</div>
<el-collapse>
<el-collapse-item v-for="(item, index) in farmingPlans" :key="index" :name="index">
<template #title>
<div class="info-setting-title">
<span style="display: flex; width: 190px;">
<el-input v-model="item.linkName" @click.native.stop="" />
</span>
<div style="flex: 1;"></div>
<div style="display: flex;align-items: center;">
<div>
<span class="fs-12 mr-6" >扫码展示</span>
<el-switch v-model="item.scanShow" @change="changePlanScanShow($event, index)" @click.native.stop="" :active-value="true" :inactive-value="false"></el-switch>
</div>
<el-button slot="reference" type="text" class="mlr-10" @click="farmingPlans.splice(index, 1)" @click.native.stop="">删除</el-button>
</div>
</div>
</template>
<div style="margin-top: 10px;">
<el-form ref="form" label-width="80px">
<el-row :gutter="40">
<el-col :span="5">
<el-form-item label="地块编码:">
<el-input disabled v-model="item.operateDetails[0].content"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="计划编号:">
<el-input disabled v-model="item.operateDetails[1].content"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="种植时间:">
<el-input disabled v-model="item.operateDetails[2].content"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="采收时间:">
<el-input disabled v-model="item.operateDetails[3].content"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="说明:">
<el-input v-model="item.operateDetails[4].content"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table :data="item.tableData" style="width: 100%">
<el-table-column prop="jobType" label="任务类型">
<template slot-scope="{ row }">
<el-input v-model="row.jobType" placeholder="请输入任务类型"></el-input>
</template>
</el-table-column>
<el-table-column prop="inputsName" label="农资名称">
<template slot-scope="{ row }">
<el-input v-model="row.inputsName" placeholder="请输入农资名称"></el-input>
</template>
</el-table-column>
<el-table-column prop="inputsBatchId" label="农资批次编号">
<template slot-scope="{ row }">
<div class="flex-acenter">
<el-tooltip class="item" effect="dark" :content="row.inputsBatchId" placement="top">
<span class="more-width-full">{{ row.inputsBatchId }}</span>
</el-tooltip>
</div>
</template>
</el-table-column>
<el-table-column prop="jobDate" label="作业日期">
<template slot-scope="{ row }">
<div class="flex-acenter">
<el-input v-model="row.jobDate" placeholder="请输入作业日期"></el-input>
</div>
</template>
</el-table-column>
<el-table-column prop="jobWorker" label="作业员工">
<template slot-scope="{ row }">
<div class="flex-acenter">
<el-input v-model="row.jobWorker" placeholder="请输入作业员工"></el-input>
</div>
</template>
</el-table-column>
<el-table-column prop="remarks" label="图片">
<template v-slot="{ row }">
<div class="flex-acenter">
<div v-if="row.jobImage" @click="openPreviewImage(row.jobImage)"></div>
<div v-if="!row.jobImage">-</div>
</div>
</template>
</el-table-column>
<el-table-column prop="remarks" label="视频">
<template v-slot="{ row }">
<div class="flex-acenter">
<div v-if="row.jobVideo" @click="openPreviewVideo(row.jobVideo)"></div>
<div v-if="!row.jobVideo">-</div>
</div>
</template>
</el-table-column>
<el-table-column prop="remarks" label="说明">
<template v-slot="{ row }">
<div class="flex-acenter">
<el-input v-model="row.remarks" placeholder="请输入"></el-input>
</div>
</template>
</el-table-column>
<el-table-column label="扫码展示">
<template v-slot="{ row }">
<el-switch v-model="row.scanShow"></el-switch>
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot="{ $index }">
<el-button @click="item.tableData.splice($index, 1) && item.farmingJobs.splice($index, 1)" type="text" size="small">删除</el-button>
</template>
</el-table-column>
<div slot="empty">
<EmptyTable />
</div>
</el-table>
</div>
</el-collapse-item>
</el-collapse>
<div v-if="farmingPlans && farmingPlans.length == 0">
<EmptyTable />
</div>
</div>
-->
<!-- ///////////////////////////////////////// ///////////////////////////////////////// -->
<div class="app-container-search main-bgcolor main-radius setting-container">
<div class="setting-title flex-jcenter">
<div class="">商品认证</div>
<div class="">
<el-button class="mr-10" @click="openImportGoodsVerify"></el-button>
</div>
</div>
<el-table :data="goodsVerifys" style="width: 100%">
<el-table-column prop="verifyName" label="认证名称">
<template v-slot="{ row }">
<el-input v-model="row.verifyName" placeholder="请输入认证名称"></el-input>
</template>
</el-table-column>
<el-table-column prop="verifyAgencies" label="认证机构">
<template v-slot="{ row }">
<el-input v-model="row.verifyAgencies" placeholder="请输入认证机构"></el-input>
</template>
</el-table-column>
<el-table-column prop="verifyDate" label="有效期">
<template v-slot="{ row }">
<el-input v-model="row.verifyDate" placeholder="请输入有效期"></el-input>
</template>
</el-table-column>
<el-table-column prop="verifyDataUrl" label="认证资料" >
<template v-slot="{ row }">
<template v-if="row.verifyDataUrl != '--'">
<el-image
style="width: 60px; height: 60px;margin: 5px;"
v-for="(item, index) in row.verifyDataUrl"
:key="index"
:src="item"
:preview-src-list="row.verifyDataUrl"
fit="fill"></el-image>
</template>
<template v-else>
<span>{{row.verifyDataUrl}}</span>
</template>
</template>
</el-table-column>
<el-table-column label="扫码展示">
<template v-slot="{ row }">
<el-switch v-model="row.scanShow" :active-value="true" :inactive-value="false"></el-switch>
</template>
</el-table-column>
<el-table-column label="操作">
<template v-slot="{$index}">
<!--
<el-popconfirm title="确定删除吗?" @confirm="deleteVerify($index)">
<el-button slot="reference" type="text" size="small">删除</el-button>
</el-popconfirm>
-->
<el-button slot="reference" type="text" size="small" @click="deleteVerify($index)"></el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- ///////////////////////////////////////// ///////////////////////////////////////// --> <!-- ///////////////////////////////////////// ///////////////////////////////////////// -->
<div class="app-container-search main-bgcolor main-radius setting-container"> <div class="app-container-search main-bgcolor main-radius setting-container">
<div class="setting-title flex-jcenter"> <div class="setting-title flex-jcenter">
@ -561,22 +367,6 @@
</span> </span>
</el-dialog> </el-dialog>
<!-- 选择计划弹窗 -->
<el-dialog class="add-dialog" title="地块计划信息列表" v-if="selectPlanVisible" :visible.sync="selectPlanVisible" width="1200px" append-to-body>
<Transfer
ref="transfer"
:data="planOptions"
:vModel="inputCheckedIdList"
:renderContent="renderTransferLabel"
:titles="['可选', '已选']"
@change="handleSelectChange"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitTransferForm"> </el-button>
<el-button @click="selectPlanVisible = false"> </el-button>
</div>
</el-dialog>
<el-dialog class="add-dialog" title="查看图片" :visible.sync="previewImageVisible" width="600px" append-to-body> <el-dialog class="add-dialog" title="查看图片" :visible.sync="previewImageVisible" width="600px" append-to-body>
<ImageUpload v-model="imageList" :disabled="true"></ImageUpload> <ImageUpload v-model="imageList" :disabled="true"></ImageUpload>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -607,7 +397,6 @@
import { getInspectionByHarvestBatchId } from '@/api/production/inspection'; import { getInspectionByHarvestBatchId } from '@/api/production/inspection';
import { getAvailableEnvType, getEnvTypeConfigGroupByLandId } from '@/api/iot/envType'; import { getAvailableEnvType, getEnvTypeConfigGroupByLandId } from '@/api/iot/envType';
import { getAVGEnvDatasByTypeIds } from '@/api/iot/envData'; import { getAVGEnvDatasByTypeIds } from '@/api/iot/envData';
// import { getBusinessNamesByLandId } from '@/api/product/landInfo';
import { getMonitorPreviewURLByLandId } from '@/api/iot/deviceInfo'; import { getMonitorPreviewURLByLandId } from '@/api/iot/deviceInfo';
import { getLanguageType } from "@/api/system/languageType"; import { getLanguageType } from "@/api/system/languageType";
import { getUniTemplateOptions } from '@/api/configure/uniTemplate'; import { getUniTemplateOptions } from '@/api/configure/uniTemplate';
@ -817,7 +606,7 @@
spinner: 'el-icon-loading', spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)' background: 'rgba(0, 0, 0, 0.7)'
}); });
getHarvestBatchConfig(id, languageTypeId).then(({ data, data: { belongBusinessId, goodsId, businessInfo, goodsInfo, goodsVerifys, linkInfos, farmingPlans, inspections, } }) => { getHarvestBatchConfig(id, languageTypeId).then(({ data, data: { goodsId, businessInfo, goodsInfo, linkInfos, inspections, } }) => {
this.harvestBatchConfig = { this.harvestBatchConfig = {
...data, ...data,
id, id,
@ -825,7 +614,7 @@
// //
if(businessInfo !== null) { if(businessInfo !== null) {
const operateDetails = businessInfo.operateDetails?.map(detail => { const operateDetails = businessInfo.operateDetails?.map(detail => {
if(detail.type == 7 || detail.type == 10) { if(detail.type == 7 || detail.type == 10 || detail.type == 14 || detail.type == 15) {
detail.content = JSON.parse(detail.content); detail.content = JSON.parse(detail.content);
detail.mapContent = detail.content; detail.mapContent = detail.content;
} }
@ -839,7 +628,7 @@
// //
if(goodsInfo !== null) { if(goodsInfo !== null) {
const operateDetails = goodsInfo.operateDetails?.map(detail => { const operateDetails = goodsInfo.operateDetails?.map(detail => {
if(detail.type == 7 || detail.type == 10) { if(detail.type == 7 || detail.type == 10 || detail.type == 14 || detail.type == 15) {
detail.content = JSON.parse(detail.content); detail.content = JSON.parse(detail.content);
detail.mapContent = detail.content; detail.mapContent = detail.content;
} }
@ -850,22 +639,11 @@
operateDetails, operateDetails,
}; };
} }
//
this.goodsVerifys = goodsVerifys.map(verify => {
const { operateDetails } = verify;
return {
...verify,
verifyName: operateDetails[0].content,
verifyAgencies: operateDetails[1].content,
verifyDate: operateDetails[2].content,
verifyDataUrl: operateDetails[3].content.split(','),
};
});
// //
this.linkInfos = linkInfos.map(item => { this.linkInfos = linkInfos.map(item => {
const { operateDetails } = item; const { operateDetails } = item;
operateDetails.map(items=>{ operateDetails.map(items=>{
if(items.type == 7 || items.type == 10) { if(items.type == 7 || items.type == 10 || detail.type == 14 || detail.type == 15) {
items.content = JSON.parse(items.content); items.content = JSON.parse(items.content);
items.mapContent = items.content; items.mapContent = items.content;
} }
@ -882,7 +660,7 @@
item.isExpand = false; item.isExpand = false;
if(index == 0) item.isExpand = true; if(index == 0) item.isExpand = true;
item.operateDetails?.map(detail => { item.operateDetails?.map(detail => {
if(detail.type == 7 || detail.type == 10) { if(detail.type == 7 || detail.type == 10 || detail.type == 14 || detail.type == 15) {
detail.content = JSON.parse(detail.content); detail.content = JSON.parse(detail.content);
detail.mapContent = detail.content; detail.mapContent = detail.content;
} }
@ -905,8 +683,6 @@
loading.close(); loading.close();
// //
this.getTraceTemplate(goodsId); this.getTraceTemplate(goodsId);
//
// this.getLandInfoList(belongBusinessId);
}).catch(() => { }).catch(() => {
loading.close(); loading.close();
}); });
@ -1543,48 +1319,6 @@
this.previewImageVisible = true; this.previewImageVisible = true;
}, },
//
async submitTransferForm() {
const { data } = await getLandFarmingConfig({
goodsId: this.harvestBatchConfig.goodsId,
ids: this.inputCheckedIdList.join(','),
});
this.selectPlanVisible = false;
this.farmingPlans = data.map((item, index)=>{
item.isExpand = false;
if(index == 0) item.isExpand = true;
item.scanShow = true;
item.tableData = [];
item.farmingJobs.map((job, index) => {
job.indexKey = index;
job.scanShow = true;
item.tableData.push({
jobType: job.operateDetails[0].content,
inputsName: job.operateDetails[1].content,
inputsBatchId: job.operateDetails[2].content,
jobDate: job.operateDetails[3].content,
jobWorker: job.operateDetails[4].content,
jobImage: job.operateDetails[5].content,
jobVideo: job.operateDetails[6].content,
remarks: job.operateDetails[7].content,
scanShow: true,
indexKey: index,
});
});
return item;
});
},
//
changePlanExpand(index) {
this.farmingPlans = this.farmingPlans.map((plan, i) => {
return {
...plan,
isExpand: index == i ? !plan.isExpand : plan.isExpand,
}
});
},
// //
changeInspectionExpand(index) { changeInspectionExpand(index) {
this.inspections = this.inspections.map((inspection, i) => { this.inspections = this.inspections.map((inspection, i) => {
@ -1775,7 +1509,7 @@
const goodsInfo = { const goodsInfo = {
...this.goodsInfo, ...this.goodsInfo,
operateDetails: this.goodsInfo.operateDetails?.filter(item => item.type !== '').map((item, index) => { operateDetails: this.goodsInfo.operateDetails?.filter(item => item.type !== '').map((item, index) => {
if(item.type == 7 || item.type == 10){// if(item.type == 7 || item.type == 10 || item.type == 14 || item.type == 15){//
item.content = JSON.stringify(item.mapContent); item.content = JSON.stringify(item.mapContent);
} }
item.sort = index; item.sort = index;
@ -1788,7 +1522,7 @@
businessInfo = { businessInfo = {
...this.businessInfo, ...this.businessInfo,
operateDetails: this.businessInfo.operateDetails?.filter(item => item.type !== '').map((item, index) => { operateDetails: this.businessInfo.operateDetails?.filter(item => item.type !== '').map((item, index) => {
if(item.type == 7 || item.type == 10){// if(item.type == 7 || item.type == 10 || item.type == 14 || item.type == 15){//
item.content = JSON.stringify(item.mapContent); item.content = JSON.stringify(item.mapContent);
} }
item.sort = index; item.sort = index;
@ -1801,7 +1535,7 @@
return { return {
...link, ...link,
operateDetails: link.operateDetails?.filter(item => item.type !== '').map((item, index) => { operateDetails: link.operateDetails?.filter(item => item.type !== '').map((item, index) => {
if(item.type == 7 || item.type == 10){// if(item.type == 7 || item.type == 10 || item.type == 14 || item.type == 15){//
item.content = JSON.stringify(item.mapContent); item.content = JSON.stringify(item.mapContent);
} }
item.sort = index; item.sort = index;
@ -1814,58 +1548,10 @@
this.$message.error('商品信息不能为空'); this.$message.error('商品信息不能为空');
return false; return false;
} }
// if(!businessInfo.linkName || !businessInfo.operateDetails || businessInfo.operateDetails.length === 0){
// this.$message.error('');
// return false;
// }
const goodsVerifys = this.goodsVerifys.map((item, index) => {
const operateDetails = item.operateDetails || [
{
title: "认证名称",
type: 3,
content: item.verifyName,
},
{
title: "认证机构",
type: 3,
content: item.verifyAgencies,
},
{
title: "有效期",
type: 3,
content: item.verifyDate,
},
{
title: "认证资料",
type: 1,
content: item.verifyDataUrl && item.verifyDataUrl.join(','),
},
];
operateDetails.map((detail, i) => {
if (detail.title === "认证名称") {
detail.content = item.verifyName;
}
if (detail.title === "认证机构") {
detail.content = item.verifyAgencies;
}
if (detail.title === "有效期") {
detail.content = item.verifyDate;
}
detail.sort = i;
});
return {
...item,
linkName: '商品认证',
sort: index,
operateDetails,
};
});
const inspections = this.inspections.map((inspection, index) => { const inspections = this.inspections.map((inspection, index) => {
const operateDetails = inspection.operateDetails?.filter(item => item.type !== '').map(item => { const operateDetails = inspection.operateDetails?.filter(item => item.type !== '').map(item => {
if(item.type == 7 || item.type == 10){// if(item.type == 7 || item.type == 10 || item.type == 14 || item.type == 15){//
item.content = JSON.stringify(item.mapContent); item.content = JSON.stringify(item.mapContent);
} }
return item; return item;
@ -1903,39 +1589,6 @@
}; };
}); });
// const farmingPlans = this.farmingPlans.map((plan, index) => {
// const { tableData, } = plan;
// const farmingJobs = plan.farmingJobs?.map((item, iIndex) => {
// item.operateDetails.map((detail, i) => {
// if (detail.title === '') {
// detail.content = tableData[iIndex].remarks;
// }
// if (detail.title === "") {
// detail.content = tableData[iIndex].jobType;
// }
// if (detail.title === "") {
// detail.content = tableData[iIndex].inputsName;
// }
// if (detail.title === "") {
// detail.content = tableData[iIndex].jobDate;
// }
// if (detail.title === "") {
// detail.content = tableData[iIndex].jobWorker;
// }
// detail.sort = i;
// });
// return {
// ...item,
// scanShow: tableData[iIndex].scanShow,
// };
// });
// return {
// ...plan,
// sort: index,
// farmingJobs,
// };
// });
// const envTypeConfigs = []; // const envTypeConfigs = [];
// this.landInfos?.map((land, index) => { // this.landInfos?.map((land, index) => {
// this.deviceInfo.envTypes[land.value]?.map(item => { // this.deviceInfo.envTypes[land.value]?.map(item => {
@ -1955,9 +1608,7 @@
templateId, templateId,
businessInfo, businessInfo,
goodsInfo, goodsInfo,
goodsVerifys,
linkInfos, linkInfos,
// farmingPlans,
inspections, inspections,
// envTypeConfigs, // envTypeConfigs,
}; };

Loading…
Cancel
Save