|
|
@@ -7,19 +7,28 @@
|
|
|
<el-col>
|
|
|
<div class="search_box">
|
|
|
<!-- 任务处理人 -->
|
|
|
- <el-input
|
|
|
- size="mini"
|
|
|
- placeholder="请输入任务处理人"
|
|
|
- style="width: 15%"
|
|
|
- v-model.trim="input"
|
|
|
- @change="searchData"
|
|
|
+ <el-select
|
|
|
+ filterable
|
|
|
+ v-model="input"
|
|
|
clearable
|
|
|
+ @change="searchData"
|
|
|
+ placeholder="请选择任务处理人"
|
|
|
+ size="mini"
|
|
|
>
|
|
|
- </el-input>
|
|
|
+ <el-option
|
|
|
+ v-for="item in conductorList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
|
|
|
<!-- 任务状态 -->
|
|
|
<el-select
|
|
|
+ filterable
|
|
|
v-model="value"
|
|
|
+ @change="searchData"
|
|
|
clearable
|
|
|
placeholder="请选择任务状态"
|
|
|
size="mini"
|
|
|
@@ -59,7 +68,12 @@
|
|
|
</el-row>
|
|
|
|
|
|
<!-- 列表 -->
|
|
|
- <el-table :data="tableData" stripe style="width: 100%">
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ stripe
|
|
|
+ v-loading="loading"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
<el-table-column prop="serial" label="序号" width="100">
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="trap_number" label="设备编号" width="120">
|
|
|
@@ -83,6 +97,9 @@
|
|
|
>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="report_time" label="带回时间" width="280">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.report_time || "暂无" }}</span>
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="discern_status" label="任务状态" width="280">
|
|
|
<template slot-scope="scope">
|
|
|
@@ -142,7 +159,7 @@
|
|
|
<a
|
|
|
v-if="scope.row.discern_status == '已接收'"
|
|
|
class="reset"
|
|
|
- @click="filing(scope.row)"
|
|
|
+ @click="examine(scope.row)"
|
|
|
href="javascript:;"
|
|
|
>填报</a
|
|
|
>
|
|
|
@@ -152,7 +169,7 @@
|
|
|
class="reset"
|
|
|
href="javascript:;"
|
|
|
@click="examine(scope.row)"
|
|
|
- >已识别</a
|
|
|
+ >编辑</a
|
|
|
>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
@@ -175,66 +192,83 @@
|
|
|
<!-- 填报弹框 -->
|
|
|
<el-dialog
|
|
|
title="填报"
|
|
|
+ v-loading="loading1"
|
|
|
:visible.sync="dialogVisible"
|
|
|
width="30%"
|
|
|
:close-on-click-modal="false"
|
|
|
:close-on-press-escape="false"
|
|
|
>
|
|
|
<ul class="fill_ul">
|
|
|
- <li class="fill_list">
|
|
|
+ <li class="fill_listTlt">
|
|
|
<div class="fill_tltie">有害生物</div>
|
|
|
- <div class="fill_div">
|
|
|
+ <div class="fill_tltie">数量</div>
|
|
|
+ </li>
|
|
|
+
|
|
|
+ <li class="fill_list1" v-if="fillList.length !== 0">
|
|
|
+ <div v-for="(item, index) in fillList" :key="index">
|
|
|
<el-select
|
|
|
- v-model="value2"
|
|
|
+ v-model="item.value"
|
|
|
size="mini"
|
|
|
clearable
|
|
|
placeholder="请选择"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="item in options1"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
+ v-for="item1 in fillList"
|
|
|
+ :key="item1.value"
|
|
|
+ :label="item1.label"
|
|
|
+ :value="item1.value"
|
|
|
>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
+
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入内容"
|
|
|
+ size="mini"
|
|
|
+ v-model="item.num"
|
|
|
+ clearable
|
|
|
+ type="number"
|
|
|
+ style="width: 30%"
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+
|
|
|
+ <span>删除</span>
|
|
|
</div>
|
|
|
- <!-- <el-select
|
|
|
- v-model="value2"
|
|
|
+ </li>
|
|
|
+
|
|
|
+ <!-- 添加 -->
|
|
|
+ <li class="fill_list">
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入有害生物"
|
|
|
size="mini"
|
|
|
+ v-model="insectVal"
|
|
|
clearable
|
|
|
- placeholder="请选择"
|
|
|
+ style="width: 37%; margin: 0 0 0 -8px"
|
|
|
>
|
|
|
- <el-option
|
|
|
- v-for="item in options1"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select> -->
|
|
|
- </li>
|
|
|
- <li class="fill_list">
|
|
|
- <div class="fill_tltie">数量</div>
|
|
|
+ </el-input>
|
|
|
+
|
|
|
<el-input
|
|
|
- placeholder="请输入内容"
|
|
|
+ placeholder="请输入数量"
|
|
|
size="mini"
|
|
|
- v-model="input2"
|
|
|
+ v-model="numVal"
|
|
|
clearable
|
|
|
+ type="number"
|
|
|
+ style="width: 30%"
|
|
|
>
|
|
|
</el-input>
|
|
|
- </li>
|
|
|
|
|
|
- <li class="fill_list">
|
|
|
- <span>删除</span>
|
|
|
+ <span
|
|
|
+ style="color: #000; font-size: 30px; cursor: pointer"
|
|
|
+ @click="addInsect()"
|
|
|
+ >+</span
|
|
|
+ >
|
|
|
</li>
|
|
|
</ul>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
+ <!-- <span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
|
|
<el-button type="primary" @click="dialogVisible = false"
|
|
|
>确 定</el-button
|
|
|
>
|
|
|
- </span>
|
|
|
+ </span> -->
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -249,26 +283,19 @@ export default {
|
|
|
|
|
|
// 筛选
|
|
|
input: "", // 任务处理人
|
|
|
+ conductorList: [], // 任务处理人列表
|
|
|
options: [
|
|
|
{
|
|
|
- value: "选项1",
|
|
|
- label: "黄金糕",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "选项2",
|
|
|
- label: "双皮奶",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "选项3",
|
|
|
- label: "蚵仔煎",
|
|
|
+ value: "待接收",
|
|
|
+ label: "待接收",
|
|
|
},
|
|
|
{
|
|
|
- value: "选项4",
|
|
|
- label: "龙须面",
|
|
|
+ value: "已接收",
|
|
|
+ label: "已接收",
|
|
|
},
|
|
|
{
|
|
|
- value: "选项5",
|
|
|
- label: "北京烤鸭",
|
|
|
+ value: "已填报",
|
|
|
+ lanbel: "已填报",
|
|
|
},
|
|
|
],
|
|
|
value: "", // 任务状态
|
|
|
@@ -282,31 +309,23 @@ export default {
|
|
|
tableSum: 0, // 总页数
|
|
|
|
|
|
// 填报弹框
|
|
|
- dialogVisible: true,
|
|
|
+ dialogVisible: false,
|
|
|
options1: [
|
|
|
{
|
|
|
value: "选项1",
|
|
|
label: "黄金糕",
|
|
|
},
|
|
|
- {
|
|
|
- value: "选项2",
|
|
|
- label: "双皮奶",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "选项3",
|
|
|
- label: "蚵仔煎",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "选项4",
|
|
|
- label: "龙须面",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "选项5",
|
|
|
- label: "北京烤鸭",
|
|
|
- },
|
|
|
],
|
|
|
value2: "",
|
|
|
input2: "",
|
|
|
+ loading: false, // 加载
|
|
|
+
|
|
|
+ // 已识别
|
|
|
+ examineObj: {}, // 选中的对象值
|
|
|
+ fillList: [], // 填报详情数据
|
|
|
+ insectVal: "", // 添加 - 有害生物
|
|
|
+ numVal: "", // 添加 - 数量
|
|
|
+ loading1: false, // 加载
|
|
|
};
|
|
|
},
|
|
|
//监听属性 类似于data概念
|
|
|
@@ -325,6 +344,13 @@ export default {
|
|
|
}, 400);
|
|
|
}
|
|
|
},
|
|
|
+
|
|
|
+ // 填报弹框
|
|
|
+ dialogVisible(val) {
|
|
|
+ if (val == false) {
|
|
|
+ this.fillList = [];
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
//方法集合
|
|
|
methods: {
|
|
|
@@ -340,14 +366,35 @@ export default {
|
|
|
},
|
|
|
|
|
|
// 筛选
|
|
|
- searchData() {},
|
|
|
+ searchData() {
|
|
|
+ // 对时间筛选中获取到的时间进行处理
|
|
|
+ if (this.value1) {
|
|
|
+ this.startTime = this.formatTime(this.value1[0], "yyyy-MM-dd");
|
|
|
+ this.endTime = this.formatTime(this.value1[1], "yyyy-MM-dd");
|
|
|
+ } else {
|
|
|
+ this.startTime = "";
|
|
|
+ this.endTime = "";
|
|
|
+ }
|
|
|
+ this.loading = true;
|
|
|
+ this.tableData = [];
|
|
|
+ this.tableList();
|
|
|
+ },
|
|
|
|
|
|
// 重置
|
|
|
- reset() {},
|
|
|
+ reset() {
|
|
|
+ this.input = "";
|
|
|
+ this.value = "";
|
|
|
+ this.value1 = "";
|
|
|
+ this.startTime = "";
|
|
|
+ this.endTime = "";
|
|
|
+ this.loading = true;
|
|
|
+ this.tableList();
|
|
|
+ },
|
|
|
|
|
|
// 下页
|
|
|
newPage(page) {
|
|
|
this.page = page;
|
|
|
+ this.tableList();
|
|
|
},
|
|
|
|
|
|
// 表格数据
|
|
|
@@ -358,15 +405,13 @@ export default {
|
|
|
data: this.qs.stringify({
|
|
|
page: this.page,
|
|
|
page_item: 10,
|
|
|
- operator_user_id: "", // 任务处理人id
|
|
|
- owner_user_id: "", //任务发布人id
|
|
|
+ operator_user_id: this.input, // 任务处理人id
|
|
|
start_time: this.startTime, // 开始时间
|
|
|
end_time: this.endTime, // 结束时间
|
|
|
task_status: this.value, // 任务状态
|
|
|
}),
|
|
|
})
|
|
|
.then((res) => {
|
|
|
- console.log(res.data.data.page_list);
|
|
|
if (res.data.data.total_item !== 0) {
|
|
|
this.tableSum = res.data.data.total_item;
|
|
|
var data = res.data.data.page_list;
|
|
|
@@ -375,15 +420,37 @@ export default {
|
|
|
item.serial = index + 1;
|
|
|
list.push(item);
|
|
|
});
|
|
|
- console.log(list);
|
|
|
this.tableData = list;
|
|
|
}
|
|
|
+ this.loading = false;
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
- console.log(err);
|
|
|
+ this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
|
|
|
+ // 筛选列表 - 任务处理人
|
|
|
+ conductorAxios() {
|
|
|
+ this.$axios({
|
|
|
+ method: "POST",
|
|
|
+ url: "/api/api_gateway?method=control_center.task.task_user_list",
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.data.data.operator_user_list.length !== 0) {
|
|
|
+ var data = res.data.data.operator_user_list;
|
|
|
+ var list = [];
|
|
|
+ data.forEach((item) => {
|
|
|
+ var obj = {};
|
|
|
+ obj["value"] = item.user_id;
|
|
|
+ obj["label"] = item.real_name;
|
|
|
+ list.push(obj);
|
|
|
+ });
|
|
|
+ this.conductorList = list;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ },
|
|
|
+
|
|
|
// 确认接收
|
|
|
receive(data) {
|
|
|
this.$confirm("此操作将确认接收, 是否继续?", "提示", {
|
|
|
@@ -392,33 +459,140 @@ export default {
|
|
|
type: "warning",
|
|
|
})
|
|
|
.then(() => {
|
|
|
- this.$message({
|
|
|
- type: "success",
|
|
|
- message: "接收成功!",
|
|
|
- });
|
|
|
+ this.$axios({
|
|
|
+ method: "POST",
|
|
|
+ url: "/api/api_gateway?method=control_center.task.discern_modify",
|
|
|
+ data: this.qs.stringify({
|
|
|
+ record_id: data.id, // 任务id
|
|
|
+ }),
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.data.data == true) {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "接收成功!",
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ this.loading = true;
|
|
|
+ this.tableList();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.log(err);
|
|
|
+ });
|
|
|
})
|
|
|
.catch(() => {
|
|
|
this.$message({
|
|
|
type: "info",
|
|
|
message: "已取消接收",
|
|
|
+ duration: 1500,
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
|
|
|
// 填报
|
|
|
- filing(data) {
|
|
|
- this.dialogVisible = true;
|
|
|
+ // filing(data) {
|
|
|
+ // this.examineObj = data;
|
|
|
+ // this.dialogVisible = true;
|
|
|
+ // },
|
|
|
+
|
|
|
+ // 填报、编辑事件 (表格中的操作)
|
|
|
+ examine(data) {
|
|
|
+ // console.log(data);
|
|
|
+ this.examineObj = data;
|
|
|
+ // 填报记录详情接口
|
|
|
+ this.$axios({
|
|
|
+ method: "POST",
|
|
|
+ url: "/api/api_gateway?method=control_center.task.trap_pest_record_info",
|
|
|
+ data: this.qs.stringify({
|
|
|
+ trap_record_id: data.id, // 任务id
|
|
|
+ }),
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ // if (res.data.data.length !== 0) {
|
|
|
+ var data = res.data.data;
|
|
|
+ var list = [];
|
|
|
+ data.forEach((item, index) => {
|
|
|
+ var obj = {};
|
|
|
+ obj["value"] = item.id;
|
|
|
+ obj["label"] = item.pest_name;
|
|
|
+ obj["num"] = item.pest_number;
|
|
|
+ obj["ind"] = index;
|
|
|
+ list.push(obj);
|
|
|
+ });
|
|
|
+ console.log(list);
|
|
|
+ this.fillList = list;
|
|
|
+ this.dialogVisible = true;
|
|
|
+ // }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.log(err);
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
- // 已识别
|
|
|
- examine(data) {},
|
|
|
+ // 添加有害生物
|
|
|
+ addInsect() {
|
|
|
+ if (this.insectVal !== "" && this.numVal !== "") {
|
|
|
+ var list = [];
|
|
|
+ var obj = {};
|
|
|
+ obj["pest_name"] = this.insectVal;
|
|
|
+ obj["pest_number"] = this.numVal;
|
|
|
+ list.push(obj);
|
|
|
+
|
|
|
+ this.$confirm("此操作将新增有害生物, 是否继续?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.$axios({
|
|
|
+ method: "POST",
|
|
|
+ url: "/api/api_gateway?method=control_center.task.discern_add",
|
|
|
+ data: this.qs.stringify({
|
|
|
+ record_id: this.examineObj.id, // 任务id
|
|
|
+ pest_list: JSON.stringify(list), // 害虫数组
|
|
|
+ }),
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.data.message == "") {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: "添加成功!",
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ this.examine(this.examineObj);
|
|
|
+ }
|
|
|
+ this.insectVal = "";
|
|
|
+ this.numVal = "";
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.log(err);
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: "info",
|
|
|
+ message: "已取消添加",
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: "info",
|
|
|
+ message: "请将信息填写完整!",
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
//生命周期 - 创建完成(可以访问当前this实例)
|
|
|
created() {},
|
|
|
//生命周期 - 挂载完成(可以访问DOM元素)
|
|
|
mounted() {
|
|
|
+ this.loading = true;
|
|
|
this.get_boderHeight(); // 动态获取浏览器高度
|
|
|
this.tableList(); // 表格列表数据
|
|
|
+ this.conductorAxios(); // 筛选列表 - 任务处理人列表
|
|
|
},
|
|
|
beforeCreate() {}, //生命周期 - 创建之前
|
|
|
beforeMount() {}, //生命周期 - 挂载之前
|
|
|
@@ -459,21 +633,41 @@ export default {
|
|
|
|
|
|
// 填报弹框
|
|
|
.fill_ul {
|
|
|
- // border: 1px solid #000;
|
|
|
- // display: flex;
|
|
|
- .fill_list {
|
|
|
- .fill_div {
|
|
|
- display: flex;
|
|
|
- }
|
|
|
- margin: 0 20px 0 0;
|
|
|
+ .fill_listTlt {
|
|
|
+ display: flex;
|
|
|
+ width: 50%;
|
|
|
+ margin: 0 0 0 24px;
|
|
|
+ justify-content: space-between;
|
|
|
.fill_tltie {
|
|
|
margin: 0 0 10px 0;
|
|
|
}
|
|
|
+ }
|
|
|
+ .fill_list {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-around;
|
|
|
+ margin: 0 20px 10px 0;
|
|
|
span {
|
|
|
- line-height: 87px;
|
|
|
+ line-height: 30px;
|
|
|
color: #1890ff;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .fill_list1 {
|
|
|
+ div {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-around;
|
|
|
+ margin: 0 20px 10px 0;
|
|
|
+ span {
|
|
|
+ line-height: 30px;
|
|
|
+ color: #1890ff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/.el-card {
|
|
|
+ overflow: hidden;
|
|
|
+ overflow-y: auto;
|
|
|
}
|
|
|
}
|
|
|
</style>
|