up
This commit is contained in:
1370
src/views/FarmerManagement/index.vue
Normal file
1370
src/views/FarmerManagement/index.vue
Normal file
File diff suppressed because one or more lines are too long
@ -1,114 +1,155 @@
|
||||
<template>
|
||||
<div class="login">
|
||||
<div class="zr">{{ message }}</div>
|
||||
</div>
|
||||
<div class="login">
|
||||
<div class="zr">{{ message }}</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { getCodeImg } from '@/api/login';
|
||||
import Cookies from 'js-cookie';
|
||||
import { encrypt, decrypt } from '@/utils/jsencrypt';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import { useRoute } from 'vue-router';
|
||||
import axios from 'axios';
|
||||
import { ref, onMounted, inject, reactive, watch } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { setToken, removeToken } from '@/utils/auth';
|
||||
import { getCodeImg } from "@/api/login";
|
||||
import Cookies from "js-cookie";
|
||||
import { encrypt, decrypt } from "@/utils/jsencrypt";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
import { useRoute } from "vue-router";
|
||||
import axios from "axios";
|
||||
import { ref, onMounted, inject, reactive, watch } from "vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { setToken, removeToken } from "@/utils/auth";
|
||||
import { getRouters } from "@/api/menu";
|
||||
import ParentView from "@/components/ParentView";
|
||||
const modules = import.meta.glob("@/views/**/*.vue");
|
||||
|
||||
const Route = useRoute();
|
||||
|
||||
const userStore = useUserStore();
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance();
|
||||
let message = ref('加载中,请稍侯.....');
|
||||
let message = ref("加载中,请稍侯.....");
|
||||
let loginForm = ref({
|
||||
ticket: '',
|
||||
ticket: "",
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
getName();
|
||||
getName();
|
||||
});
|
||||
function getName(params) {
|
||||
removeToken();
|
||||
//获取当前URL
|
||||
var url = document.location.href;
|
||||
//声明一个对象
|
||||
var getRequest = new Object();
|
||||
//获取?的位置
|
||||
var index = url.indexOf('?');
|
||||
if (index != -1) {
|
||||
//截取出?后面的字符串
|
||||
var str = url.substr(index + 1);
|
||||
//将截取出来的字符串按照&变成数组
|
||||
let strs = str.split('&');
|
||||
//将get传参存入对象中
|
||||
for (var i = 0; i < strs.length; i++) {
|
||||
getRequest[strs[i].split('=')[0]] = strs[i].split('=')[1];
|
||||
}
|
||||
}
|
||||
// if (getRequest.ticket) {
|
||||
// window.localStorage.setItem('ticket', getRequest.ticket);
|
||||
// axios
|
||||
// .get(
|
||||
// `${serverAPI.baseUrl}/equipment/getUser?ticket=${getRequest.ticket}&url=${serverAPI.api}`
|
||||
// )
|
||||
// .then(response => {
|
||||
// console.log(response);
|
||||
// if (response.data.data.deptCode == '-1') {
|
||||
// window.localStorage.setItem('divisions', '370211');
|
||||
// window.localStorage.setItem('deptName', '青岛西海岸新区');
|
||||
// window.localStorage.setItem('userName', response.data.data.userName);
|
||||
// loginForm.value.username = response.data.data.userName;
|
||||
// } else {
|
||||
// window.localStorage.setItem('divisions', response.data.data.deptCode);
|
||||
// window.localStorage.setItem(
|
||||
// 'deptName',
|
||||
// response.data.data.deptCode.length == 6
|
||||
// ? '青岛西海岸新区'
|
||||
// : response.data.data.deptName
|
||||
// );
|
||||
// window.localStorage.setItem('userName', response.data.data.userName);
|
||||
// loginForm.value.username = response.data.data.userName;
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
loginForm.value.ticket = getRequest.ticket;
|
||||
userStore
|
||||
.login(loginForm.value)
|
||||
.then(response => {
|
||||
if (response.data.deptCode == '-1') {
|
||||
window.localStorage.setItem('divisions', '370211');
|
||||
window.localStorage.setItem('deptName', '青岛西海岸新区');
|
||||
window.localStorage.setItem('userName', response.data.userName);
|
||||
} else {
|
||||
window.localStorage.setItem('divisions', response.data.deptCode);
|
||||
window.localStorage.setItem(
|
||||
'deptName',
|
||||
response.data.deptCode.length == 6
|
||||
? '青岛西海岸新区'
|
||||
: response.data.deptName
|
||||
);
|
||||
window.localStorage.setItem('userName', response.data.userName);
|
||||
}
|
||||
router.push({ path: redirect.value || '/' });
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
// 重新获取验证码
|
||||
if (captchaEnabled.value) {
|
||||
getCode();
|
||||
}
|
||||
// 遍历后台传来的路由字符串,转换为组件对象
|
||||
import Layout from "@/layout/index";
|
||||
function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
|
||||
return asyncRouterMap.filter((route) => {
|
||||
if (type && route.children) {
|
||||
route.children = filterChildren(route.children);
|
||||
}
|
||||
if (route.component) {
|
||||
// Layout ParentView 组件特殊处理
|
||||
if (route.component === "Layout") {
|
||||
route.component = Layout;
|
||||
} else if (route.component === "ParentView") {
|
||||
route.component = ParentView;
|
||||
} else if (route.component === "InnerLink") {
|
||||
route.component = InnerLink;
|
||||
} else {
|
||||
route.component = loadView(route.component);
|
||||
}
|
||||
}
|
||||
if (route.children != null && route.children && route.children.length) {
|
||||
route.children = filterAsyncRouter(route.children, route, type);
|
||||
} else {
|
||||
delete route["children"];
|
||||
delete route["redirect"];
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
function getName(params) {
|
||||
removeToken();
|
||||
//获取当前URL
|
||||
var url = document.location.href;
|
||||
//声明一个对象
|
||||
var getRequest = new Object();
|
||||
//获取?的位置
|
||||
var index = url.indexOf("?");
|
||||
if (index != -1) {
|
||||
//截取出?后面的字符串
|
||||
var str = url.substr(index + 1);
|
||||
//将截取出来的字符串按照&变成数组
|
||||
let strs = str.split("&");
|
||||
//将get传参存入对象中
|
||||
for (var i = 0; i < strs.length; i++) {
|
||||
getRequest[strs[i].split("=")[0]] = strs[i].split("=")[1];
|
||||
}
|
||||
}
|
||||
// if (getRequest.ticket) {
|
||||
// window.localStorage.setItem('ticket', getRequest.ticket);
|
||||
// axios
|
||||
// .get(
|
||||
// `${serverAPI.baseUrl}/equipment/getUser?ticket=${getRequest.ticket}&url=${serverAPI.api}`
|
||||
// )
|
||||
// .then(response => {
|
||||
// console.log(response);
|
||||
// if (response.data.data.deptCode == '-1') {
|
||||
// window.localStorage.setItem('divisions', '370211');
|
||||
// window.localStorage.setItem('deptName', '青岛西海岸新区');
|
||||
// window.localStorage.setItem('userName', response.data.data.userName);
|
||||
// loginForm.value.username = response.data.data.userName;
|
||||
// } else {
|
||||
// window.localStorage.setItem('divisions', response.data.data.deptCode);
|
||||
// window.localStorage.setItem(
|
||||
// 'deptName',
|
||||
// response.data.data.deptCode.length == 6
|
||||
// ? '青岛西海岸新区'
|
||||
// : response.data.data.deptName
|
||||
// );
|
||||
// window.localStorage.setItem('userName', response.data.data.userName);
|
||||
// loginForm.value.username = response.data.data.userName;
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
loginForm.value.ticket = getRequest.ticket;
|
||||
userStore
|
||||
.login(loginForm.value)
|
||||
.then((response) => {
|
||||
if (response.data.deptCode == "-1") {
|
||||
window.localStorage.setItem("divisions", "370211");
|
||||
window.localStorage.setItem("deptName", "青岛西海岸新区");
|
||||
window.localStorage.setItem("userName", response.data.userName);
|
||||
} else {
|
||||
window.localStorage.setItem("divisions", response.data.deptCode);
|
||||
window.localStorage.setItem(
|
||||
"deptName",
|
||||
response.data.deptCode.length == 6 ? "青岛西海岸新区" : response.data.deptName
|
||||
);
|
||||
window.localStorage.setItem("userName", response.data.userName);
|
||||
}
|
||||
getRouters().then((res) => {
|
||||
const sdata = JSON.parse(JSON.stringify(res.data));
|
||||
const rdata = JSON.parse(JSON.stringify(res.data));
|
||||
const defaultData = JSON.parse(JSON.stringify(res.data));
|
||||
const defaultRoutes = filterAsyncRouter(defaultData);
|
||||
router.push({
|
||||
path:
|
||||
defaultRoutes[0]["path"] + "/" + defaultRoutes[0]["children"][0].path || defaultRoutes[0]["path"] || "/",
|
||||
});
|
||||
});
|
||||
//router.push({ path: redirect.value || "/" });
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
// 重新获取验证码
|
||||
if (captchaEnabled.value) {
|
||||
getCode();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const loginRules = {
|
||||
username: [{ required: true, trigger: 'blur', message: '请输入您的账号' }],
|
||||
password: [{ required: true, trigger: 'blur', message: '请输入您的密码' }],
|
||||
code: [{ required: true, trigger: 'change', message: '请输入验证码' }],
|
||||
username: [{ required: true, trigger: "blur", message: "请输入您的账号" }],
|
||||
password: [{ required: true, trigger: "blur", message: "请输入您的密码" }],
|
||||
code: [{ required: true, trigger: "change", message: "请输入验证码" }],
|
||||
};
|
||||
|
||||
const codeUrl = ref('');
|
||||
const codeUrl = ref("");
|
||||
const loading = ref(false);
|
||||
// 验证码开关
|
||||
const captchaEnabled = ref(true);
|
||||
@ -117,57 +158,67 @@ const register = ref(false);
|
||||
const redirect = ref(undefined);
|
||||
|
||||
function handleLogin() {
|
||||
proxy.$refs.loginRef.validate(valid => {
|
||||
if (valid) {
|
||||
loading.value = true;
|
||||
// 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
|
||||
if (loginForm.value.rememberMe) {
|
||||
Cookies.set('username', loginForm.value.username, { expires: 30 });
|
||||
Cookies.set('password', encrypt(loginForm.value.password), { expires: 30 });
|
||||
Cookies.set('rememberMe', loginForm.value.rememberMe, { expires: 30 });
|
||||
} else {
|
||||
// 否则移除
|
||||
Cookies.remove('username');
|
||||
Cookies.remove('password');
|
||||
Cookies.remove('rememberMe');
|
||||
}
|
||||
// 调用action的登录方法
|
||||
userStore
|
||||
.login(loginForm.value)
|
||||
.then(() => {
|
||||
router.push({ path: redirect.value || '/' });
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
// 重新获取验证码
|
||||
if (captchaEnabled.value) {
|
||||
getCode();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
proxy.$refs.loginRef.validate((valid) => {
|
||||
if (valid) {
|
||||
loading.value = true;
|
||||
// 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
|
||||
if (loginForm.value.rememberMe) {
|
||||
Cookies.set("username", loginForm.value.username, { expires: 30 });
|
||||
Cookies.set("password", encrypt(loginForm.value.password), { expires: 30 });
|
||||
Cookies.set("rememberMe", loginForm.value.rememberMe, { expires: 30 });
|
||||
} else {
|
||||
// 否则移除
|
||||
Cookies.remove("username");
|
||||
Cookies.remove("password");
|
||||
Cookies.remove("rememberMe");
|
||||
}
|
||||
// 调用action的登录方法
|
||||
userStore
|
||||
.login(loginForm.value)
|
||||
.then(() => {
|
||||
router.push({ path: redirect.value || "/" });
|
||||
})
|
||||
.catch(() => {
|
||||
loading.value = false;
|
||||
// 重新获取验证码
|
||||
if (captchaEnabled.value) {
|
||||
getCode();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getCode() {
|
||||
getCodeImg().then(res => {
|
||||
captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled;
|
||||
if (captchaEnabled.value) {
|
||||
codeUrl.value = 'data:image/gif;base64,' + res.img;
|
||||
loginForm.value.uuid = res.uuid;
|
||||
}
|
||||
});
|
||||
getCodeImg().then((res) => {
|
||||
captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled;
|
||||
if (captchaEnabled.value) {
|
||||
codeUrl.value = "data:image/gif;base64," + res.img;
|
||||
loginForm.value.uuid = res.uuid;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getCookie() {
|
||||
const username = Cookies.get('username');
|
||||
const password = Cookies.get('password');
|
||||
const rememberMe = Cookies.get('rememberMe');
|
||||
loginForm.value = {
|
||||
username: username === undefined ? loginForm.value.username : username,
|
||||
password: password === undefined ? loginForm.value.password : decrypt(password),
|
||||
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
|
||||
};
|
||||
const username = Cookies.get("username");
|
||||
const password = Cookies.get("password");
|
||||
const rememberMe = Cookies.get("rememberMe");
|
||||
loginForm.value = {
|
||||
username: username === undefined ? loginForm.value.username : username,
|
||||
password: password === undefined ? loginForm.value.password : decrypt(password),
|
||||
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
|
||||
};
|
||||
}
|
||||
const loadView = (view) => {
|
||||
let res;
|
||||
for (const path in modules) {
|
||||
const dir = path.split("views/")[1].split(".vue")[0];
|
||||
if (dir === view) {
|
||||
res = () => modules[path]();
|
||||
}
|
||||
}
|
||||
return res;
|
||||
};
|
||||
|
||||
getCode();
|
||||
getCookie();
|
||||
@ -175,75 +226,75 @@ getCookie();
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.login {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
background-image: url('../assets/images/login-background.jpg');
|
||||
background-size: cover;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
background-image: url("../assets/images/login-background.jpg");
|
||||
background-size: cover;
|
||||
}
|
||||
.title {
|
||||
margin: 0px auto 30px auto;
|
||||
text-align: center;
|
||||
color: #707070;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
margin: 0px auto 30px auto;
|
||||
text-align: center;
|
||||
color: #707070;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.login-form {
|
||||
border-radius: 6px;
|
||||
background: #ffffff;
|
||||
width: 400px;
|
||||
padding: 25px 25px 5px 25px;
|
||||
.el-input {
|
||||
height: 40px;
|
||||
input {
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
.input-icon {
|
||||
height: 39px;
|
||||
width: 14px;
|
||||
margin-left: 0px;
|
||||
border-radius: 6px;
|
||||
background: #ffffff;
|
||||
width: 400px;
|
||||
padding: 25px 25px 5px 25px;
|
||||
.el-input {
|
||||
height: 40px;
|
||||
input {
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
.input-icon {
|
||||
height: 39px;
|
||||
width: 14px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
.login-tip {
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
color: #bfbfbf;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
color: #bfbfbf;
|
||||
}
|
||||
.login-code {
|
||||
width: 33%;
|
||||
height: 40px;
|
||||
float: right;
|
||||
img {
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
}
|
||||
width: 33%;
|
||||
height: 40px;
|
||||
float: right;
|
||||
img {
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
.zr {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
font-size: 48px;
|
||||
color: #fff;
|
||||
transform: translate(-50%);
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
font-size: 48px;
|
||||
color: #fff;
|
||||
transform: translate(-50%);
|
||||
}
|
||||
.el-login-footer {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-family: Arial;
|
||||
font-size: 12px;
|
||||
letter-spacing: 1px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-family: Arial;
|
||||
font-size: 12px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
.login-code-img {
|
||||
height: 40px;
|
||||
padding-left: 12px;
|
||||
height: 40px;
|
||||
padding-left: 12px;
|
||||
}
|
||||
</style>
|
||||
|
@ -1,70 +1,65 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="病害名称" prop="name">
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
placeholder="请输入病害名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="病害名称" prop="name">
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
placeholder="请输入病害名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:chzl:add']"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="chzlList"
|
||||
max-height="75vh"
|
||||
@selection-change="handleSelectionChange"
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:chzl:add']"
|
||||
>
|
||||
<el-table-column label="病害名称" align="center" prop="name" />
|
||||
<el-table-column
|
||||
label="防治方法"
|
||||
align="center"
|
||||
prop="fzff"
|
||||
/>
|
||||
<el-table-column
|
||||
label="发病症状"
|
||||
align="center"
|
||||
prop="xttz"
|
||||
/>
|
||||
<el-table-column :key="index" align="center" label="详情">
|
||||
<template #default="scope">
|
||||
<span
|
||||
class="Guidance"
|
||||
style="cursor: pointer; color: rgba(100, 195, 164, 1)"
|
||||
@click="GuidanceClick(scope.row)"
|
||||
>
|
||||
查看详情
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
新增
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar
|
||||
v-model:showSearch="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="chzlList"
|
||||
max-height="75vh"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column label="病害名称" align="center" prop="name" />
|
||||
<el-table-column label="防治方法" align="center" prop="fzff" />
|
||||
<el-table-column label="发病症状" align="center" prop="xttz" />
|
||||
<el-table-column :key="index" align="center" label="详情">
|
||||
<template #default="scope">
|
||||
<span
|
||||
class="Guidance"
|
||||
style="cursor: pointer; color: rgba(100, 195, 164, 1)"
|
||||
@click="GuidanceClickss(scope.row)"
|
||||
>
|
||||
查看详情
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
@ -76,75 +71,75 @@
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改病害对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="chzlRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="病害名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入病害名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="防治方法" prop="fzff">
|
||||
<el-input v-model="form.fzff" placeholder="请输入防治方法" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发病症状" prop="xttz">
|
||||
<el-input v-model="form.xttz" placeholder="请输入发病症状" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="GuidanceFlag" title="指导意见" width="50%" center>
|
||||
<div class="titleDivs">
|
||||
<div style="height: 60px; width: 6px; background: rgba(100, 195, 164, 1)"></div>
|
||||
<div style="height: 60px; width: 6px; background: #fff"></div>
|
||||
<div style="height: 60px; width: 3px; background: rgba(100, 195, 164, 0.6)"></div>
|
||||
<h2
|
||||
style="
|
||||
background: #fff;
|
||||
height: 60px;
|
||||
padding: 20px;
|
||||
font-size: 28px;
|
||||
font-weight: 800;
|
||||
"
|
||||
>
|
||||
{{ GuidanceTxt.name }}
|
||||
</h2>
|
||||
</div>
|
||||
<div class="GuidanceDiv">
|
||||
<div class="GuidanceContent">
|
||||
<h3 style="color: rgba(100, 195, 164, 1); font-weight: 600; display: flex">
|
||||
<img v-if="label3 == '虫情监测仪'" src="@/assets/images/chong.png" />
|
||||
<img v-if="label3 == '大田视频病害监测'" src="@/assets/images/bing.png" />
|
||||
形态特征
|
||||
</h3>
|
||||
<p style="white-space: pre-line"> {{ GuidanceTxt.xttz }}</p>
|
||||
<h3 style="color: rgba(100, 195, 164, 1); font-weight: 600; display: flex">
|
||||
<img src="@/assets/images/fang.png" />
|
||||
防治方法
|
||||
</h3>
|
||||
<p style="white-space: pre-wrap">{{ GuidanceTxt.fzff }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<!-- 添加或修改病害对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="chzlRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="病害名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入病害名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="防治方法" prop="fzff">
|
||||
<el-input v-model="form.fzff" placeholder="请输入防治方法" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发病症状" prop="xttz">
|
||||
<el-input v-model="form.xttz" placeholder="请输入发病症状" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="GuidanceFlags" title="指导意见" width="50%" center>
|
||||
<div class="titleDivs">
|
||||
<div style="height: 60px; width: 6px; background: rgba(100, 195, 164, 1)"></div>
|
||||
<div style="height: 60px; width: 6px; background: #fff"></div>
|
||||
<div style="height: 60px; width: 3px; background: rgba(100, 195, 164, 0.6)"></div>
|
||||
<h2
|
||||
style="
|
||||
background: #fff;
|
||||
height: 60px;
|
||||
padding: 20px;
|
||||
font-size: 28px;
|
||||
font-weight: 800;
|
||||
"
|
||||
>
|
||||
{{ GuidanceTxts.name }}
|
||||
</h2>
|
||||
</div>
|
||||
<div class="GuidanceDiv">
|
||||
<div class="GuidanceContent">
|
||||
<h3 style="color: rgba(100, 195, 164, 1); font-weight: 600; display: flex">
|
||||
<img v-if="label3 == '虫情监测仪'" src="@/assets/images/chong.png" />
|
||||
<img v-if="label3 == '大田视频病害监测'" src="@/assets/images/bing.png" />
|
||||
形态特征
|
||||
</h3>
|
||||
<p style="white-space: pre-line"> {{ GuidanceTxts.xttz }}</p>
|
||||
<h3 style="color: rgba(100, 195, 164, 1); font-weight: 600; display: flex">
|
||||
<img src="@/assets/images/fang.png" />
|
||||
防治方法
|
||||
</h3>
|
||||
<p style="white-space: pre-wrap">{{ GuidanceTxts.fzff }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Chzl">
|
||||
import { getChzl, listChzl, addChzl, delChzl } from '@/api/system/chzl.js';
|
||||
import { getChzl, listChzl, addChzl, delChzl } from "@/api/system/chzl.js";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
@ -156,138 +151,138 @@ const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref('');
|
||||
let GuidanceFlag = ref(false);
|
||||
let GuidanceArr = ref([]);
|
||||
let GuidanceTxt = ref([]);
|
||||
const title = ref("");
|
||||
let GuidanceFlags = ref(false);
|
||||
let GuidanceTxts = ref([]);
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
id: null,
|
||||
name: null,
|
||||
bt: null,
|
||||
nr: null,
|
||||
},
|
||||
rules: {},
|
||||
const datas = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
id: null,
|
||||
name: null,
|
||||
bt: null,
|
||||
nr: null,
|
||||
},
|
||||
rules: {},
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
const { queryParams, form, rules } = toRefs(datas);
|
||||
|
||||
/** 查询病害列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listChzl({...queryParams.value}).then(response => {
|
||||
chzlList.value = response.data;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
loading.value = true;
|
||||
listChzl({ ...queryParams.value }).then((response) => {
|
||||
chzlList.value = response.data;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
name: null,
|
||||
xttz: null,
|
||||
fzff: null,
|
||||
};
|
||||
proxy.resetForm('chzlRef');
|
||||
form.value = {
|
||||
name: null,
|
||||
xttz: null,
|
||||
fzff: null,
|
||||
};
|
||||
proxy.resetForm("chzlRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm('queryRef');
|
||||
handleQuery();
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = '添加病害';
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加病害";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getChzl(_id).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = '修改病害';
|
||||
});
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getChzl(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改病害";
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs['chzlRef'].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateChzl(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess('修改成功');
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addChzl(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess(response.msg);
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
proxy.$refs["chzlRef"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateChzl(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addChzl(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess(response.msg);
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.name;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除"' + _ids + '"的数据项?')
|
||||
.then(function () {
|
||||
return delChzl({ name: _ids });
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess('删除成功');
|
||||
})
|
||||
.catch(() => {});
|
||||
const _ids = row.name;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除"' + _ids + '"的数据项?')
|
||||
.then(function () {
|
||||
return delChzl({ name: _ids });
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
'system/chzl/export',
|
||||
{
|
||||
...queryParams.value,
|
||||
},
|
||||
`chzl_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
proxy.download(
|
||||
"system/chzl/export",
|
||||
{
|
||||
...queryParams.value,
|
||||
},
|
||||
`chzl_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
}
|
||||
const GuidanceClick = e => {
|
||||
GuidanceFlag.value = true;
|
||||
GuidanceTxt.value = e;
|
||||
const GuidanceClickss = (e) => {
|
||||
console.log("111");
|
||||
GuidanceFlags.value = true;
|
||||
GuidanceTxts.value = e;
|
||||
};
|
||||
|
||||
getList();
|
||||
@ -295,41 +290,41 @@ getList();
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep() th {
|
||||
color: black !important;
|
||||
color: black !important;
|
||||
}
|
||||
:deep().el-table__expand-icon {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
/*2.展开按钮未点击的样式是加号带边框*/
|
||||
:deep().el-table__expand-icon {
|
||||
content: url('/Users/luce/Desktop/数字三农/Agriculture-front-end/src/assets/images/zhankais.png') !important;
|
||||
padding: 2px;
|
||||
content: url("/Users/luce/Desktop/数字三农/Agriculture-front-end/src/assets/images/zhankais.png") !important;
|
||||
padding: 2px;
|
||||
}
|
||||
/*3.展开按钮点击后的样式是减号带边框*/
|
||||
:deep() .el-table__expand-icon--expanded {
|
||||
content: url('/Users/luce/Desktop/数字三农/Agriculture-front-end/src/assets/images/shouqi.png') !important;
|
||||
content: url("/Users/luce/Desktop/数字三农/Agriculture-front-end/src/assets/images/shouqi.png") !important;
|
||||
}
|
||||
.titleDivs {
|
||||
display: flex;
|
||||
height: 57px;
|
||||
align-items: center;
|
||||
background-image: url('@/assets/images/bgx.png');
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
display: flex;
|
||||
height: 57px;
|
||||
align-items: center;
|
||||
background-image: url("@/assets/images/bgx.png");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
:deep().el-table {
|
||||
.cell {
|
||||
.cell {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
.GuidanceDiv {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
.GuidanceContent {
|
||||
overflow-y: auto;
|
||||
.GuidanceContent {
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -32,7 +32,7 @@
|
||||
<img src="@/assets/images/qx.png" />
|
||||
</div> -->
|
||||
</div>
|
||||
<div v-show="tabrFlag" class="rightbottom">
|
||||
<div v-if="tabrFlag" class="rightbottom">
|
||||
<div class="title">
|
||||
<div
|
||||
style="
|
||||
@ -266,6 +266,10 @@
|
||||
<img src="@/assets/images/dow.png" alt="" />
|
||||
下载
|
||||
</el-button>
|
||||
<el-button v-if="formInline.divisions == ''" type="primary" text @click="downGjsjxzqbcdsj">
|
||||
<img src="@/assets/images/dow.png" alt="" />
|
||||
下载所有村数据
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="modeDiv" @click="SwitchMode">
|
||||
@ -371,6 +375,7 @@ import {
|
||||
getlistMode,
|
||||
getgarrison,
|
||||
getAdministrativeChun,
|
||||
gjsjxzqbcdsj
|
||||
} from '@/api/crops/classify.js';
|
||||
import axios from 'axios';
|
||||
import * as xlsx from 'xlsx'; // Vue3 版本
|
||||
@ -438,8 +443,8 @@ let highStandarditem = {
|
||||
蓝莓: [],
|
||||
茶叶: [],
|
||||
马铃薯: [],
|
||||
白菜和萝卜: [],
|
||||
其他: [],
|
||||
// 白菜和萝卜: [],
|
||||
// 其他: [],
|
||||
};
|
||||
//搜索
|
||||
let formInline = ref({
|
||||
@ -464,9 +469,22 @@ watch(
|
||||
window.document.querySelector('.tableBox').style.height = '83%';
|
||||
} else {
|
||||
window.document.querySelector('.tableBox').style.height = '90%';
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
watch(()=>router,(newVal, oldVal)=>{
|
||||
if(newVal.currentRoute._value.fullPath !== '/crops/Classify'){
|
||||
echarts.init(typesofDiv.value).dispose()
|
||||
typeFlag.value= false
|
||||
}else{
|
||||
|
||||
|
||||
}
|
||||
},{deep: true})
|
||||
|
||||
|
||||
watch(
|
||||
() => oldDatas.value,
|
||||
(val, oldVal) => {
|
||||
@ -525,16 +543,16 @@ watch(
|
||||
name: `T${str1}_malingshu`,
|
||||
time: `T${num3}malingshu${num3}nongzuowufenlei`,
|
||||
},
|
||||
白菜和萝卜: {
|
||||
setOf: `${oldDatas.value.name}-nongzuowufenlei`,
|
||||
name: `T${str1}_baicai_luobo`,
|
||||
time: `T${num3}baicai_luobo${num3}nongzuowufenlei`,
|
||||
},
|
||||
其他: {
|
||||
setOf: `${oldDatas.value.name}-nongzuowufenlei`,
|
||||
name: `T${str1}_qitanongzuowu`,
|
||||
time: `T${num3}qitanongzuowu${num3}nongzuowufenlei`,
|
||||
},
|
||||
// 白菜和萝卜: {
|
||||
// setOf: `${oldDatas.value.name}-nongzuowufenlei`,
|
||||
// name: `T${str1}_baicai_luobo`,
|
||||
// time: `T${num3}baicai_luobo${num3}nongzuowufenlei`,
|
||||
// },
|
||||
// 其他: {
|
||||
// setOf: `${oldDatas.value.name}-nongzuowufenlei`,
|
||||
// name: `T${str1}_qitanongzuowu`,
|
||||
// time: `T${num3}qitanongzuowu${num3}nongzuowufenlei`,
|
||||
// },
|
||||
};
|
||||
}
|
||||
);
|
||||
@ -554,7 +572,7 @@ const onSubmit = () => {
|
||||
amount.value = [
|
||||
{
|
||||
region: '高标准农田',
|
||||
其他: res.data[res.data.length - 1].otherSum,
|
||||
// 其他: res.data[res.data.length - 1].otherSum,
|
||||
地瓜: res.data[res.data.length - 1].sweetPotatoSum,
|
||||
大豆: res.data[res.data.length - 1].soyBeanSum,
|
||||
小麦: res.data[res.data.length - 1].wheatSum,
|
||||
@ -563,7 +581,7 @@ const onSubmit = () => {
|
||||
蓝莓: res.data[res.data.length - 1].blueberrySum,
|
||||
玉米: res.data[res.data.length - 1].cronSum,
|
||||
马铃薯: res.data[res.data.length - 1].potatoSum,
|
||||
白菜和萝卜: res.data[res.data.length - 1].turnipSum,
|
||||
// 白菜和萝卜: res.data[res.data.length - 1].turnipSum,
|
||||
合计: '合计',
|
||||
},
|
||||
];
|
||||
@ -606,14 +624,14 @@ const onSubmit = () => {
|
||||
lable: '马铃薯',
|
||||
value: '马铃薯',
|
||||
},
|
||||
{
|
||||
lable: '白菜和萝卜',
|
||||
value: '白菜和萝卜',
|
||||
},
|
||||
{
|
||||
lable: '其他',
|
||||
value: '其他',
|
||||
},
|
||||
// {
|
||||
// lable: '白菜和萝卜',
|
||||
// value: '白菜和萝卜',
|
||||
// },
|
||||
// {
|
||||
// lable: '其他',
|
||||
// value: '其他',
|
||||
// },
|
||||
];
|
||||
res.data.forEach(item => {
|
||||
if (arr.indexOf(item.region) == -1) {
|
||||
@ -718,14 +736,14 @@ const onSubmit = () => {
|
||||
lable: '马铃薯',
|
||||
value: '马铃薯',
|
||||
},
|
||||
{
|
||||
lable: '白菜和萝卜',
|
||||
value: '白菜和萝卜',
|
||||
},
|
||||
{
|
||||
lable: '其他',
|
||||
value: '其他',
|
||||
},
|
||||
// {
|
||||
// lable: '白菜和萝卜',
|
||||
// value: '白菜和萝卜',
|
||||
// },
|
||||
// {
|
||||
// lable: '其他',
|
||||
// value: '其他',
|
||||
// },
|
||||
];
|
||||
res.data.forEach(item => {
|
||||
if (arr.indexOf(item.tomeName) == -1) {
|
||||
@ -965,6 +983,12 @@ const Deta4 = item => {
|
||||
}
|
||||
};
|
||||
|
||||
const downGjsjxzqbcdsj=()=>{
|
||||
gjsjxzqbcdsj({yearMonth:formInline.value.yearMonth}).then(res=>{
|
||||
downLoadFile(res.msg)
|
||||
})
|
||||
}
|
||||
|
||||
const download = item => {
|
||||
downLoadFile(item.download);
|
||||
};
|
||||
@ -998,8 +1022,8 @@ const exportExcel = (tableData, fileName = '用户列表', pageName = 'Sheet1')
|
||||
蓝莓: '蓝莓(亩)',
|
||||
茶叶: '茶叶(亩)',
|
||||
马铃薯: '马铃薯(亩)',
|
||||
白菜和萝卜: '白菜和萝卜(亩)',
|
||||
其他: '其他(亩)',
|
||||
// 白菜和萝卜: '白菜和萝卜(亩)',
|
||||
// 其他: '其他(亩)',
|
||||
};
|
||||
const list = changeTableHead(tableData, fieldNameObj);
|
||||
// 创建工作表
|
||||
@ -1020,8 +1044,8 @@ let dd = {
|
||||
蓝莓: [],
|
||||
茶叶: [],
|
||||
马铃薯: [],
|
||||
白菜和萝卜: [],
|
||||
其他: [],
|
||||
// 白菜和萝卜: [],
|
||||
// 其他: [],
|
||||
};
|
||||
let time = ref(0);
|
||||
let dic = ref({
|
||||
@ -1033,8 +1057,8 @@ let dic = ref({
|
||||
蓝莓: { color: 'rgba(50, 140, 254, 1)', disabled: false },
|
||||
茶叶: { color: 'rgba(255, 204, 59, 1)', disabled: false },
|
||||
马铃薯: { color: 'rgba(152, 255, 254, 1)', disabled: false },
|
||||
白菜和萝卜: { color: 'rgba(255, 152, 153, 1)', disabled: false },
|
||||
其他: { color: 'rgba(176, 161, 255, 1)', disabled: false },
|
||||
// 白菜和萝卜: { color: 'rgba(255, 152, 153, 1)', disabled: false },
|
||||
// 其他: { color: 'rgba(176, 161, 255, 1)', disabled: false },
|
||||
});
|
||||
// 图层字典
|
||||
let layersDic = {
|
||||
@ -1149,36 +1173,36 @@ let dictionaryArr = [
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
// 数据项名称
|
||||
name: '白菜和萝卜',
|
||||
area: '',
|
||||
value: 56,
|
||||
itemStyle: {
|
||||
// 透明度
|
||||
opacity: 0.8,
|
||||
// 扇形颜色
|
||||
color: 'rgba(205, 236, 198, 1)',
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
// 数据项名称
|
||||
name: '其他',
|
||||
area: '',
|
||||
value: 56,
|
||||
itemStyle: {
|
||||
// 透明度
|
||||
opacity: 0.8,
|
||||
// 扇形颜色
|
||||
color: 'rgba(255, 218, 44, 1)',
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
// {
|
||||
// // 数据项名称
|
||||
// name: '白菜和萝卜',
|
||||
// area: '',
|
||||
// value: 56,
|
||||
// itemStyle: {
|
||||
// // 透明度
|
||||
// opacity: 0.8,
|
||||
// // 扇形颜色
|
||||
// color: 'rgba(205, 236, 198, 1)',
|
||||
// },
|
||||
// label: {
|
||||
// show: true,
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// // 数据项名称
|
||||
// name: '其他',
|
||||
// area: '',
|
||||
// value: 56,
|
||||
// itemStyle: {
|
||||
// // 透明度
|
||||
// opacity: 0.8,
|
||||
// // 扇形颜色
|
||||
// color: 'rgba(255, 218, 44, 1)',
|
||||
// },
|
||||
// label: {
|
||||
// show: true,
|
||||
// },
|
||||
// },
|
||||
];
|
||||
let Pie3D = reactive({
|
||||
arr: [],
|
||||
@ -1226,6 +1250,7 @@ function initonMounted() {
|
||||
rightWra.style.transform = 'translate(101%,0)';
|
||||
localStorage.setItem(router.currentRoute.value.path, true);
|
||||
}
|
||||
let typeFlag = ref(false)
|
||||
onUpdated(() => {
|
||||
if (localStorage.getItem(router.currentRoute.value.path) == 'false') {
|
||||
document.querySelector('.mode').style.display = 'block';
|
||||
@ -1236,6 +1261,9 @@ onUpdated(() => {
|
||||
document.querySelector('.mode').innerText = '列表模式';
|
||||
window.document.querySelector('#screenfull').style.display = 'block';
|
||||
}
|
||||
if(typesofDiv.value){
|
||||
typeFlag.value = true
|
||||
}
|
||||
});
|
||||
/*-------------地图------------------------*/
|
||||
let map = ref(null);
|
||||
@ -1261,7 +1289,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection: serverAPI.tiandituLayers == 'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'?'EPSG:4326':'EPSG:3857',
|
||||
projection: serverAPI.flag?'EPSG:4326':'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
@ -1865,8 +1893,8 @@ const getTownships = (city, time) => {
|
||||
蓝莓: [],
|
||||
茶叶: [],
|
||||
马铃薯: [],
|
||||
白菜和萝卜: [],
|
||||
其他: [],
|
||||
// 白菜和萝卜: [],
|
||||
// 其他: [],
|
||||
};
|
||||
res.data.forEach((item, i) => {
|
||||
for (let index = 0; index < Object.values(item).length; index++) {
|
||||
@ -1939,8 +1967,8 @@ const getvillages = (city, time) => {
|
||||
蓝莓: [],
|
||||
茶叶: [],
|
||||
马铃薯: [],
|
||||
白菜和萝卜: [],
|
||||
其他: [],
|
||||
// 白菜和萝卜: [],
|
||||
// 其他: [],
|
||||
};
|
||||
Township.brr = res.data;
|
||||
let arr = [...res.data];
|
||||
@ -2036,8 +2064,8 @@ const gethighStandards = time => {
|
||||
蓝莓: [],
|
||||
茶叶: [],
|
||||
马铃薯: [],
|
||||
白菜和萝卜: [],
|
||||
其他: [],
|
||||
// 白菜和萝卜: [],
|
||||
// 其他: [],
|
||||
};
|
||||
highStandardArr.value = res.data;
|
||||
highStandard.forEach((item, indexs) => {
|
||||
@ -2491,6 +2519,11 @@ function areachar() {
|
||||
});
|
||||
}
|
||||
}
|
||||
watch(()=>[typesofDiv.value,typeFlag.value],()=>{
|
||||
if(typesofDiv.value && typeFlag.value){
|
||||
typesof()
|
||||
}
|
||||
})
|
||||
function typesof() {
|
||||
const typesofDivIntance = echarts.init(typesofDiv.value);
|
||||
let isSelected = '';
|
||||
@ -3117,70 +3150,70 @@ function farmland() {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '白菜和萝卜',
|
||||
type: 'bar',
|
||||
barWidth: 24,
|
||||
stack: 'stack',
|
||||
data: highStandarditem.白菜和萝卜,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
barBorderRadius: 0,
|
||||
color: new echarts.graphic.LinearGradient(0, 0, 0.9, 0, [
|
||||
{
|
||||
offset: 1,
|
||||
color: 'rgba(205, 236, 198, 1)',
|
||||
},
|
||||
{
|
||||
offset: 0,
|
||||
color: 'rgba(205, 236, 198, 1)',
|
||||
},
|
||||
]),
|
||||
},
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
position: 'inside',
|
||||
formatter: '白菜和萝卜',
|
||||
textStyle: {
|
||||
fontSize: 12,
|
||||
fontWeight: 'bolder',
|
||||
color: 'rgba(119, 119, 119, 1)',
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '其他',
|
||||
type: 'bar',
|
||||
barWidth: 24,
|
||||
stack: 'stack',
|
||||
data: highStandarditem.其他,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
barBorderRadius: 0,
|
||||
color: new echarts.graphic.LinearGradient(0, 0, 0.9, 0, [
|
||||
{
|
||||
offset: 1,
|
||||
color: 'rgba(255, 218, 44, 1)',
|
||||
},
|
||||
{
|
||||
offset: 0,
|
||||
color: 'rgba(255, 218, 44, 1)',
|
||||
},
|
||||
]),
|
||||
},
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
position: 'inside',
|
||||
formatter: '其他',
|
||||
textStyle: {
|
||||
fontSize: 12,
|
||||
fontWeight: 'bolder',
|
||||
color: 'rgba(119, 119, 119, 1)',
|
||||
},
|
||||
},
|
||||
},
|
||||
// {
|
||||
// name: '白菜和萝卜',
|
||||
// type: 'bar',
|
||||
// barWidth: 24,
|
||||
// stack: 'stack',
|
||||
// data: highStandarditem.白菜和萝卜,
|
||||
// itemStyle: {
|
||||
// normal: {
|
||||
// barBorderRadius: 0,
|
||||
// color: new echarts.graphic.LinearGradient(0, 0, 0.9, 0, [
|
||||
// {
|
||||
// offset: 1,
|
||||
// color: 'rgba(205, 236, 198, 1)',
|
||||
// },
|
||||
// {
|
||||
// offset: 0,
|
||||
// color: 'rgba(205, 236, 198, 1)',
|
||||
// },
|
||||
// ]),
|
||||
// },
|
||||
// },
|
||||
// label: {
|
||||
// show: true,
|
||||
// position: 'inside',
|
||||
// formatter: '白菜和萝卜',
|
||||
// textStyle: {
|
||||
// fontSize: 12,
|
||||
// fontWeight: 'bolder',
|
||||
// color: 'rgba(119, 119, 119, 1)',
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// name: '其他',
|
||||
// type: 'bar',
|
||||
// barWidth: 24,
|
||||
// stack: 'stack',
|
||||
// data: highStandarditem.其他,
|
||||
// itemStyle: {
|
||||
// normal: {
|
||||
// barBorderRadius: 0,
|
||||
// color: new echarts.graphic.LinearGradient(0, 0, 0.9, 0, [
|
||||
// {
|
||||
// offset: 1,
|
||||
// color: 'rgba(255, 218, 44, 1)',
|
||||
// },
|
||||
// {
|
||||
// offset: 0,
|
||||
// color: 'rgba(255, 218, 44, 1)',
|
||||
// },
|
||||
// ]),
|
||||
// },
|
||||
// },
|
||||
// label: {
|
||||
// show: true,
|
||||
// position: 'inside',
|
||||
// formatter: '其他',
|
||||
// textStyle: {
|
||||
// fontSize: 12,
|
||||
// fontWeight: 'bolder',
|
||||
// color: 'rgba(119, 119, 119, 1)',
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
],
|
||||
};
|
||||
|
||||
@ -3702,82 +3735,82 @@ function ASdivision() {
|
||||
},
|
||||
data: dd.马铃薯, // 系列中的数据内容数组
|
||||
},
|
||||
{
|
||||
type: 'bar', // 系列类型
|
||||
name: '白菜和萝卜', // 系列名称, 用于tooltip的显示, legend 的图例筛选
|
||||
// 数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加
|
||||
stack: '总量',
|
||||
barMaxWidth: 30, // 柱条的最大宽度,不设时自适应
|
||||
// 图形上的文本标签
|
||||
label: {
|
||||
show: true,
|
||||
position: 'inside',
|
||||
formatter: '白菜和萝卜',
|
||||
textStyle: {
|
||||
fontSize: 12,
|
||||
fontWeight: 'bolder',
|
||||
color: 'rgba(119, 119, 119, 1)',
|
||||
},
|
||||
},
|
||||
// 图形样式
|
||||
itemStyle: {
|
||||
barBorderRadius: [0, 0, 0, 0],
|
||||
barBorderRadius: [0, 0, 0, 0], //
|
||||
borderWidth: 1, // 设置边框宽度
|
||||
borderColor: 'rgba(205, 236, 198, 1)', // 设置边框颜色
|
||||
color: {
|
||||
colorStops: [
|
||||
{
|
||||
offset: 0,
|
||||
color: ' rgba(205, 236, 198, 1)', // 0% 处的颜色
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: ' rgba(205, 236, 198, 1)', // 100% 处的颜色
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
data: dd.白菜和萝卜, // 系列中的数据内容数组
|
||||
},
|
||||
{
|
||||
type: 'bar', // 系列类型
|
||||
name: '其他', // 系列名称, 用于tooltip的显示, legend 的图例筛选
|
||||
// 数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加
|
||||
stack: '总量',
|
||||
barMaxWidth: 30, // 柱条的最大宽度,不设时自适应
|
||||
// 图形上的文本标签
|
||||
label: {
|
||||
show: true,
|
||||
position: 'inside',
|
||||
formatter: '其他',
|
||||
textStyle: {
|
||||
fontSize: 12,
|
||||
fontWeight: 'bolder',
|
||||
color: 'rgba(119, 119, 119, 1)',
|
||||
},
|
||||
},
|
||||
// 图形样式
|
||||
itemStyle: {
|
||||
barBorderRadius: [0, 0, 0, 0],
|
||||
barBorderRadius: [0, 0, 0, 0], //
|
||||
borderWidth: 1, // 设置边框宽度
|
||||
borderColor: 'rgba(255, 218, 44, 1)', // 设置边框颜色
|
||||
color: {
|
||||
colorStops: [
|
||||
{
|
||||
offset: 0,
|
||||
color: 'rgba(255, 218, 44, 1)', // 0% 处的颜色
|
||||
},
|
||||
{
|
||||
offset: 1,
|
||||
color: 'rgba(255, 218, 44, 1)', // 100% 处的颜色
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
data: dd.其他, // 系列中的数据内容数组
|
||||
},
|
||||
// {
|
||||
// type: 'bar', // 系列类型
|
||||
// name: '白菜和萝卜', // 系列名称, 用于tooltip的显示, legend 的图例筛选
|
||||
// // 数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加
|
||||
// stack: '总量',
|
||||
// barMaxWidth: 30, // 柱条的最大宽度,不设时自适应
|
||||
// // 图形上的文本标签
|
||||
// label: {
|
||||
// show: true,
|
||||
// position: 'inside',
|
||||
// formatter: '白菜和萝卜',
|
||||
// textStyle: {
|
||||
// fontSize: 12,
|
||||
// fontWeight: 'bolder',
|
||||
// color: 'rgba(119, 119, 119, 1)',
|
||||
// },
|
||||
// },
|
||||
// // 图形样式
|
||||
// itemStyle: {
|
||||
// barBorderRadius: [0, 0, 0, 0],
|
||||
// barBorderRadius: [0, 0, 0, 0], //
|
||||
// borderWidth: 1, // 设置边框宽度
|
||||
// borderColor: 'rgba(205, 236, 198, 1)', // 设置边框颜色
|
||||
// color: {
|
||||
// colorStops: [
|
||||
// {
|
||||
// offset: 0,
|
||||
// color: ' rgba(205, 236, 198, 1)', // 0% 处的颜色
|
||||
// },
|
||||
// {
|
||||
// offset: 1,
|
||||
// color: ' rgba(205, 236, 198, 1)', // 100% 处的颜色
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// },
|
||||
// data: dd.白菜和萝卜, // 系列中的数据内容数组
|
||||
// },
|
||||
// {
|
||||
// type: 'bar', // 系列类型
|
||||
// name: '其他', // 系列名称, 用于tooltip的显示, legend 的图例筛选
|
||||
// // 数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加
|
||||
// stack: '总量',
|
||||
// barMaxWidth: 30, // 柱条的最大宽度,不设时自适应
|
||||
// // 图形上的文本标签
|
||||
// label: {
|
||||
// show: true,
|
||||
// position: 'inside',
|
||||
// formatter: '其他',
|
||||
// textStyle: {
|
||||
// fontSize: 12,
|
||||
// fontWeight: 'bolder',
|
||||
// color: 'rgba(119, 119, 119, 1)',
|
||||
// },
|
||||
// },
|
||||
// // 图形样式
|
||||
// itemStyle: {
|
||||
// barBorderRadius: [0, 0, 0, 0],
|
||||
// barBorderRadius: [0, 0, 0, 0], //
|
||||
// borderWidth: 1, // 设置边框宽度
|
||||
// borderColor: 'rgba(255, 218, 44, 1)', // 设置边框颜色
|
||||
// color: {
|
||||
// colorStops: [
|
||||
// {
|
||||
// offset: 0,
|
||||
// color: 'rgba(255, 218, 44, 1)', // 0% 处的颜色
|
||||
// },
|
||||
// {
|
||||
// offset: 1,
|
||||
// color: 'rgba(255, 218, 44, 1)', // 100% 处的颜色
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// },
|
||||
// data: dd.其他, // 系列中的数据内容数组
|
||||
// },
|
||||
],
|
||||
};
|
||||
// ASdivisionDivIntance.on('click', param => ChartClickRB(param));
|
||||
@ -3814,8 +3847,8 @@ function chartModes() {
|
||||
item.蓝莓 !== undefined && Blueberries.push(item.蓝莓);
|
||||
item.茶叶 !== undefined && Tea.push(item.茶叶);
|
||||
item.马铃薯 !== undefined && Potatoes.push(item.马铃薯);
|
||||
item.白菜和萝卜 !== undefined && Cabbage.push(item.白菜和萝卜);
|
||||
item.其他 !== undefined && Other.push(item.其他);
|
||||
// item.白菜和萝卜 !== undefined && Cabbage.push(item.白菜和萝卜);
|
||||
// item.其他 !== undefined && Other.push(item.其他);
|
||||
});
|
||||
let ends = (10 / arr.length) * 100;
|
||||
let option = {
|
||||
@ -4003,26 +4036,26 @@ function chartModes() {
|
||||
},
|
||||
data: Potatoes,
|
||||
},
|
||||
{
|
||||
name: '白菜和萝卜',
|
||||
type: 'bar',
|
||||
barWidth: 13,
|
||||
stack: '分类',
|
||||
itemStyle: {
|
||||
color: 'rgba(229, 150, 255, 1)',
|
||||
},
|
||||
data: Cabbage,
|
||||
},
|
||||
{
|
||||
name: '其他',
|
||||
type: 'bar',
|
||||
barWidth: 13,
|
||||
stack: '分类',
|
||||
itemStyle: {
|
||||
color: 'rgba(189, 243, 255, 1)',
|
||||
},
|
||||
data: Other,
|
||||
},
|
||||
// {
|
||||
// name: '白菜和萝卜',
|
||||
// type: 'bar',
|
||||
// barWidth: 13,
|
||||
// stack: '分类',
|
||||
// itemStyle: {
|
||||
// color: 'rgba(229, 150, 255, 1)',
|
||||
// },
|
||||
// data: Cabbage,
|
||||
// },
|
||||
// {
|
||||
// name: '其他',
|
||||
// type: 'bar',
|
||||
// barWidth: 13,
|
||||
// stack: '分类',
|
||||
// itemStyle: {
|
||||
// color: 'rgba(189, 243, 255, 1)',
|
||||
// },
|
||||
// data: Other,
|
||||
// },
|
||||
{
|
||||
name: '合计',
|
||||
type: 'bar',
|
||||
|
@ -464,7 +464,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection: serverAPI.tiandituLayers == 'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'?'EPSG:4326':'EPSG:3857',
|
||||
projection: serverAPI.flag?'EPSG:4326':'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
|
@ -457,7 +457,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection: serverAPI.tiandituLayers == 'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'?'EPSG:4326':'EPSG:3857',
|
||||
projection: serverAPI.flag?'EPSG:4326':'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
|
@ -458,7 +458,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection: serverAPI.tiandituLayers == 'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'?'EPSG:4326':'EPSG:3857',
|
||||
projection: serverAPI.flag?'EPSG:4326':'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
|
@ -373,7 +373,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection: serverAPI.tiandituLayers == 'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'?'EPSG:4326':'EPSG:3857',
|
||||
projection: serverAPI.flag?'EPSG:4326':'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
|
@ -693,10 +693,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection:
|
||||
serverAPI.tiandituLayers ==
|
||||
'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'
|
||||
? 'EPSG:4326'
|
||||
projection:serverAPI.flag? 'EPSG:4326'
|
||||
: 'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
|
12779
src/views/index.vue
12779
src/views/index.vue
File diff suppressed because one or more lines are too long
331
src/views/insect/insect.vue
Normal file
331
src/views/insect/insect.vue
Normal file
@ -0,0 +1,331 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
:inline="true"
|
||||
v-show="showSearch"
|
||||
label-width="68px"
|
||||
@submit.native.prevent
|
||||
>
|
||||
<el-form-item label="虫害名称" prop="name">
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
placeholder="请输入虫害名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:insect:add']"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar
|
||||
v-model:showSearch="showSearch"
|
||||
@queryTable="getList"
|
||||
></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="chzlList"
|
||||
max-height="73vh"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column label="虫害名称" align="center" prop="name" />
|
||||
<el-table-column label="防治方法" align="center" prop="fzff" />
|
||||
<el-table-column label="发病症状" align="center" prop="xttz" />
|
||||
<el-table-column :key="index" align="center" label="详情">
|
||||
<template #default="scope">
|
||||
<span
|
||||
class="Guidance"
|
||||
style="cursor: pointer; color: rgba(100, 195, 164, 1)"
|
||||
@click="GuidanceClickss(scope.row)"
|
||||
>
|
||||
查看详情
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:chzl:remove']"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改病害对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="chzlRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="虫害名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入虫害名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="防治方法" prop="fzff">
|
||||
<el-input :autosize="{ minRows: 2, maxRows: 4 }" type="textarea" v-model="form.fzff" placeholder="请输入防治方法" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发病症状" prop="xttz">
|
||||
<el-input :autosize="{ minRows: 2, maxRows: 4 }" type="textarea" v-model="form.xttz" placeholder="请输入发病症状" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="GuidanceFlags" title="指导意见" width="50%" center>
|
||||
<div class="titleDivs">
|
||||
<div style="height: 60px; width: 6px; background: rgba(100, 195, 164, 1)"></div>
|
||||
<div style="height: 60px; width: 6px; background: #fff"></div>
|
||||
<div style="height: 60px; width: 3px; background: rgba(100, 195, 164, 0.6)"></div>
|
||||
<h2
|
||||
style="
|
||||
background: #fff;
|
||||
height: 60px;
|
||||
padding: 20px;
|
||||
font-size: 28px;
|
||||
font-weight: 800;
|
||||
"
|
||||
>
|
||||
{{ GuidanceTxts.name }}
|
||||
</h2>
|
||||
</div>
|
||||
<div class="GuidanceDiv">
|
||||
<div class="GuidanceContent">
|
||||
<h3 style="color: rgba(100, 195, 164, 1); font-weight: 600; display: flex">
|
||||
<img v-if="label3 == '虫情监测仪'" src="@/assets/images/chong.png" />
|
||||
<img v-if="label3 == '大田视频病害监测'" src="@/assets/images/bing.png" />
|
||||
形态特征
|
||||
</h3>
|
||||
<p style="white-space: pre-line"> {{ GuidanceTxts.xttz }}</p>
|
||||
<h3 style="color: rgba(100, 195, 164, 1); font-weight: 600; display: flex">
|
||||
<img src="@/assets/images/fang.png" />
|
||||
防治方法
|
||||
</h3>
|
||||
<p style="white-space: pre-wrap">{{ GuidanceTxts.fzff }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="insect">
|
||||
import { getChzl, listChzl, addChzl, delChzl } from "@/api/system/insect.js";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const chzlList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
let GuidanceFlags = ref(false);
|
||||
let GuidanceTxts = ref([]);
|
||||
|
||||
const datas = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
id: null,
|
||||
name: null,
|
||||
bt: null,
|
||||
nr: null,
|
||||
},
|
||||
rules: {},
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(datas);
|
||||
|
||||
/** 查询病害列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listChzl({ ...queryParams.value }).then((response) => {
|
||||
chzlList.value = response.data;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
name: null,
|
||||
xttz: null,
|
||||
fzff: null,
|
||||
};
|
||||
proxy.resetForm("chzlRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map((item) => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加虫害";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value;
|
||||
getChzl(_id).then((response) => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改虫害";
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["chzlRef"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateChzl(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addChzl(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess(response.msg);
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.name;
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除"' + _ids + '"的数据项?')
|
||||
.then(function () {
|
||||
return delChzl({ name: _ids });
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download(
|
||||
"system/insect/export",
|
||||
{
|
||||
...queryParams.value,
|
||||
},
|
||||
`insect_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
}
|
||||
const GuidanceClickss = (e) => {
|
||||
console.log("111");
|
||||
GuidanceFlags.value = true;
|
||||
GuidanceTxts.value = e;
|
||||
};
|
||||
|
||||
getList();
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep() th {
|
||||
color: black !important;
|
||||
}
|
||||
:deep().el-table__expand-icon {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
/*2.展开按钮未点击的样式是加号带边框*/
|
||||
:deep().el-table__expand-icon {
|
||||
content: url("/Users/luce/Desktop/数字三农/Agriculture-front-end/src/assets/images/zhankais.png") !important;
|
||||
padding: 2px;
|
||||
}
|
||||
/*3.展开按钮点击后的样式是减号带边框*/
|
||||
:deep() .el-table__expand-icon--expanded {
|
||||
content: url("/Users/luce/Desktop/数字三农/Agriculture-front-end/src/assets/images/shouqi.png") !important;
|
||||
}
|
||||
.titleDivs {
|
||||
display: flex;
|
||||
height: 57px;
|
||||
align-items: center;
|
||||
background-image: url("@/assets/images/bgx.png");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
:deep().el-table {
|
||||
.cell {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
.GuidanceDiv {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
.GuidanceContent {
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
</style>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -235,15 +235,14 @@ const initLeafletMap = () => {
|
||||
doubleClickZoom: false, // 禁用双击放大
|
||||
attributionControl: false, // 移除右下角leaflet标识
|
||||
maxZoom: 16,
|
||||
crs: serverAPI.tiandituzhuji=='http://59.206.203.34/tileservice/SDRasterPubMapDJ?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdcia&STYLE=default&TILEMATRIXSET=sdcia&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng' ? L.CRS.EPSG4326 : L.CRS.EPSG3857
|
||||
crs: serverAPI.flag ? L.CRS.EPSG4326 : L.CRS.EPSG3857
|
||||
});
|
||||
// 渲染底图
|
||||
// 创建底图图层
|
||||
let imgBaseLayer = null;
|
||||
let ciaBaseLayer = null;
|
||||
if (
|
||||
serverAPI.tiandituzhuji ==
|
||||
'http://59.206.203.34/tileservice/SDRasterPubMapDJ?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdcia&STYLE=default&TILEMATRIXSET=sdcia&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'
|
||||
serverAPI.flag
|
||||
) {
|
||||
imgBaseLayer = L.tileLayer(serverAPI.tiandituLayers, {
|
||||
maxZoom: 20,
|
||||
@ -956,6 +955,7 @@ $height: calc(100vh - 100px);
|
||||
font-size: 14px;
|
||||
color: rgba(0, 0, 0, 1);
|
||||
padding: 10px 20px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.cesiumContainersDiv {
|
||||
width: 30%;
|
||||
|
@ -472,11 +472,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection:
|
||||
serverAPI.tiandituLayers ==
|
||||
'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'
|
||||
? 'EPSG:4326'
|
||||
: 'EPSG:3857',
|
||||
projection: serverAPI.flag ? 'EPSG:4326' : 'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
@ -2574,7 +2570,7 @@ $height: calc(100vh - 100px);
|
||||
height: calc(40% - 25px);
|
||||
.areaDiv {
|
||||
width: 100%;
|
||||
height:calc(100% - 67px);
|
||||
height: calc(100% - 67px);
|
||||
opacity: 1;
|
||||
display: flex;
|
||||
padding: 1px;
|
||||
@ -2709,7 +2705,7 @@ $height: calc(100vh - 100px);
|
||||
flex-direction: column;
|
||||
padding: 5px 10px 5px 10px;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
height:calc(100% - 67px);
|
||||
height: calc(100% - 67px);
|
||||
:deep(.el-table--fit) {
|
||||
height: 100%;
|
||||
}
|
||||
|
@ -274,7 +274,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="面积(亩)>">
|
||||
<el-input-number v-model="num" :min="1" @change="handleChange" />
|
||||
<el-input-number v-model="num" :min="0" @change="handleChange" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
@ -449,7 +449,7 @@ let totalArea = ref(0); //总面积
|
||||
let checkListdata = ref([]);
|
||||
let SwitchFlag = ref(true);
|
||||
let timeArr = ref([]); //年数组
|
||||
const num = ref(1);
|
||||
const num = ref(0);
|
||||
let dataSource = ref([]);
|
||||
let oldDatas = ref('');
|
||||
let alterArr = ref([]);
|
||||
@ -619,11 +619,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection:
|
||||
serverAPI.tiandituLayers ==
|
||||
'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'
|
||||
? 'EPSG:4326'
|
||||
: 'EPSG:3857',
|
||||
projection: serverAPI.flag ? 'EPSG:4326' : 'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
@ -1446,7 +1442,7 @@ const resetForm = () => {
|
||||
(formInline.value.statistical = '镇'),
|
||||
(formInline.value.droughtRating = ''),
|
||||
(formInline.value.area = 0),
|
||||
(num.value = 1),
|
||||
(num.value = 0),
|
||||
(operate.value = true);
|
||||
onSubmit();
|
||||
};
|
||||
@ -2433,39 +2429,39 @@ function farmland() {
|
||||
var rule = /^(([-\u4E00-\u9FA5a-z0-9]{1,63})\.)+([\u4E00-\u9FA5a-z]{2,63})\.?$/;
|
||||
if (!rule.test(domain)) {
|
||||
document.querySelector('.tool').style.display = 'block';
|
||||
paramCode.value = param.name;
|
||||
let arr = ['XJQY3702112019WGS84', 'CJQY3702112019WGS84'];
|
||||
SQLData(param.name);
|
||||
arr.forEach(item => {
|
||||
map.getLayers()
|
||||
.getArray()
|
||||
.forEach((ite, index) => {
|
||||
if (ite.A.name == item) {
|
||||
map.getLayers().removeAt(index);
|
||||
}
|
||||
});
|
||||
});
|
||||
let arrs = ['2019-2022gaobiaozhunnongtian', 'gbz', 'dianjigaoliang', 'dianjigaoliangs'];
|
||||
arrs.forEach(item => {
|
||||
map.getLayers()
|
||||
.getArray()
|
||||
.forEach((ite, index) => {
|
||||
if (ite.A.name == item || ite.A.id == item) {
|
||||
map.getLayers().removeAt(index);
|
||||
}
|
||||
});
|
||||
});
|
||||
layers = new ol.layer.Tile({
|
||||
source: new ol.source.TileSuperMapRest({
|
||||
url: `${serverAPI.geoserverUrl}/map-2019-2022gaobiaozhunnongtian/rest/maps/T2019_2022%E9%AB%98%E6%A0%87%E5%87%86%E5%86%9C%E7%94%B0%E7%89%87%E5%8C%BA@2019-2022gaobiaozhunnongtian`,
|
||||
//rasterfunction: new SuperMap.NDVIParameter({ redIndex: 0, nirIndex: 2 }),
|
||||
cacheEnabled: false,
|
||||
}),
|
||||
name: '2019-2022gaobiaozhunnongtian',
|
||||
projection: 'EPSG:4326', //3857
|
||||
zIndex: 9999,
|
||||
});
|
||||
map.addLayer(layers);
|
||||
paramCode.value = param.name;
|
||||
let arr = ['XJQY3702112019WGS84', 'CJQY3702112019WGS84'];
|
||||
SQLData(param.name);
|
||||
arr.forEach(item => {
|
||||
map.getLayers()
|
||||
.getArray()
|
||||
.forEach((ite, index) => {
|
||||
if (ite.A.name == item) {
|
||||
map.getLayers().removeAt(index);
|
||||
}
|
||||
});
|
||||
});
|
||||
let arrs = ['2019-2022gaobiaozhunnongtian', 'gbz', 'dianjigaoliang', 'dianjigaoliangs'];
|
||||
arrs.forEach(item => {
|
||||
map.getLayers()
|
||||
.getArray()
|
||||
.forEach((ite, index) => {
|
||||
if (ite.A.name == item || ite.A.id == item) {
|
||||
map.getLayers().removeAt(index);
|
||||
}
|
||||
});
|
||||
});
|
||||
layers = new ol.layer.Tile({
|
||||
source: new ol.source.TileSuperMapRest({
|
||||
url: `${serverAPI.geoserverUrl}/map-2019-2022gaobiaozhunnongtian/rest/maps/T2019_2022%E9%AB%98%E6%A0%87%E5%87%86%E5%86%9C%E7%94%B0%E7%89%87%E5%8C%BA@2019-2022gaobiaozhunnongtian`,
|
||||
//rasterfunction: new SuperMap.NDVIParameter({ redIndex: 0, nirIndex: 2 }),
|
||||
cacheEnabled: false,
|
||||
}),
|
||||
name: '2019-2022gaobiaozhunnongtian',
|
||||
projection: 'EPSG:4326', //3857
|
||||
zIndex: 9999,
|
||||
});
|
||||
map.addLayer(layers);
|
||||
}
|
||||
});
|
||||
option && farmlandDivIntance.setOption(option, { notMerge: true, grid: { bottom: 20 } });
|
||||
|
@ -525,7 +525,7 @@ const pickerChangeFn = e => {
|
||||
let mapOption = null;
|
||||
if (serverAPI.flag) {
|
||||
mapOption = {
|
||||
url: 'http://59.206.203.34/tileservice/SdRasterPubMap?tilematrixset=img2017',
|
||||
url: `${serverAPI.url}/tileservice/SdRasterPubMap?tilematrixset=img2017`,
|
||||
layer: 'sdimg2017',
|
||||
style: 'default',
|
||||
tileMatrixSetID: 'img2017',
|
||||
|
@ -281,7 +281,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="面积(亩)>">
|
||||
<el-input-number v-model="num" :min="1" @change="handleChange" />
|
||||
<el-input-number v-model="num" :min="0" @change="handleChange" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="onSubmit">查询</el-button>
|
||||
@ -427,7 +427,7 @@ let totalArea = ref(0); //总面积
|
||||
let currentPage = ref(1); //当前页
|
||||
let pageSize = ref(12); //每页条数
|
||||
const insectarr = ref([]);
|
||||
const num = ref(1);
|
||||
const num = ref(0);
|
||||
let timeArr = ref([]); //年数组
|
||||
let tableItem = ref([]);
|
||||
let operate = ref(true);
|
||||
@ -629,11 +629,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection:
|
||||
serverAPI.tiandituLayers ==
|
||||
'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'
|
||||
? 'EPSG:4326'
|
||||
: 'EPSG:3857',
|
||||
projection: serverAPI.flag ? 'EPSG:4326' : 'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -177,6 +177,10 @@
|
||||
<div class="label">非农化:</div>
|
||||
<span>{{ Number(item.nonFarm).toFixed(2) }}(亩)</span>
|
||||
</p>
|
||||
<p class="perform_children">
|
||||
<div class="label">经纬度:</div>
|
||||
<span>{{ position[0].toFixed(6) }},{{ position[1].toFixed(6) }}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="popup-pagination"></div>
|
||||
@ -216,6 +220,7 @@ let rightWraFlag = ref(false);
|
||||
const checkList = ref([]);
|
||||
let checkListdata = ref([]);
|
||||
let alterArr = ref([]);
|
||||
let position = ref([]);
|
||||
let dataSource = ref([]);
|
||||
let oldDatas = ref('');
|
||||
let allCount = ref([]);
|
||||
@ -351,7 +356,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection: serverAPI.tiandituLayers == 'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'?'EPSG:4326':'EPSG:3857',
|
||||
projection: serverAPI.flag?'EPSG:4326':'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
@ -579,6 +584,7 @@ const addwms = name => {
|
||||
};
|
||||
|
||||
function QueryData(e, name, url, item) {
|
||||
position.value = e.Tn;
|
||||
let newDataZh = [];
|
||||
var point = new ol.geom.Point(e.coordinate);
|
||||
var param = new ol.supermap.QueryByGeometryParameters({
|
||||
@ -1833,7 +1839,7 @@ $height: calc(100vh - 100px);
|
||||
width: max-content;
|
||||
opacity: 1;
|
||||
.perform_children {
|
||||
width: 195px;
|
||||
width: 250px;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
font-size: 14px;
|
||||
@ -1846,7 +1852,7 @@ $height: calc(100vh - 100px);
|
||||
span {
|
||||
color: rgba(51, 51, 51, 1);
|
||||
display: block;
|
||||
min-width: 100px;
|
||||
min-width: 150px;
|
||||
background: rgba(100, 195, 164, 0.1);
|
||||
box-shadow: inset 0px 1px 1px rgba(100, 195, 164, 0.5);
|
||||
text-align: center;
|
||||
|
@ -4,13 +4,15 @@
|
||||
<div class="rightWra">
|
||||
<div class="rightTop">
|
||||
<div class="title">
|
||||
<div style="
|
||||
<div
|
||||
style="
|
||||
width: 3px;
|
||||
height: 19px;
|
||||
opacity: 1;
|
||||
background: rgba(100, 195, 164, 1);
|
||||
margin-right: 12px;
|
||||
"></div>
|
||||
"
|
||||
></div>
|
||||
<span>位置定位</span>
|
||||
</div>
|
||||
<div class="depth">
|
||||
@ -21,36 +23,78 @@
|
||||
</div>
|
||||
<div class="rightCenter">
|
||||
<div class="zoning" v-if="active == '2'">
|
||||
<el-select @change="selectCity()" popper-class="select_city" v-model="value" placeholder="请选择镇">
|
||||
<el-option v-for="item in cityData" :key="item.cjqydm" :label="item.cjqymc"
|
||||
:value="item.cjqydm" />
|
||||
<el-select
|
||||
@change="selectCity()"
|
||||
popper-class="select_city"
|
||||
v-model="value"
|
||||
placeholder="请选择镇"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in cityData"
|
||||
:key="item.cjqydm"
|
||||
:label="item.cjqymc"
|
||||
:value="item.cjqydm"
|
||||
/>
|
||||
</el-select>
|
||||
<el-select popper-class="select_city" v-model="villageValue" placeholder="请选择村">
|
||||
<el-option v-for="item in villageData" :key="item.cjqydm" :label="item.cjqymc"
|
||||
:value="item.cjqymc" />
|
||||
<el-select
|
||||
popper-class="select_city"
|
||||
v-model="villageValue"
|
||||
placeholder="请选择村"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in villageData"
|
||||
:key="item.cjqydm"
|
||||
:label="item.cjqymc"
|
||||
:value="item.cjqymc"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
<div v-if="active == '3'" class="LonAndLat">
|
||||
<div class="LonAndLatDiv">
|
||||
经度:
|
||||
<el-input class="seach_input" v-model="LonAndLaInput.Lon" placeholder="请输入经度" clearable />
|
||||
<el-input
|
||||
class="seach_input"
|
||||
v-model="LonAndLaInput.Lon"
|
||||
placeholder="请输入经度"
|
||||
clearable
|
||||
/>
|
||||
</div>
|
||||
<div class="LonAndLatDiv">
|
||||
纬度:
|
||||
<el-input class="seach_input" v-model="LonAndLaInput.Lat" placeholder="请输入纬度" clearable />
|
||||
<el-input
|
||||
class="seach_input"
|
||||
v-model="LonAndLaInput.Lat"
|
||||
placeholder="请输入纬度"
|
||||
clearable
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="active == '4'" class="LonAndLat">
|
||||
<div class="LonDiv">
|
||||
经度:
|
||||
<div class="inputDiv">
|
||||
<el-input class="seach_input" v-model="LonAndLa.Lon.londu" placeholder="度" clearable>
|
||||
<el-input
|
||||
class="seach_input"
|
||||
v-model="LonAndLa.Lon.londu"
|
||||
placeholder="度"
|
||||
clearable
|
||||
>
|
||||
<template #append>°</template>
|
||||
</el-input>
|
||||
<el-input class="seach_input" v-model="LonAndLa.Lon.lonfen" placeholder="分" clearable>
|
||||
<el-input
|
||||
class="seach_input"
|
||||
v-model="LonAndLa.Lon.lonfen"
|
||||
placeholder="分"
|
||||
clearable
|
||||
>
|
||||
<template #append>′</template>
|
||||
</el-input>
|
||||
<el-input class="seach_input" v-model="LonAndLa.Lon.lonmiao" placeholder="秒" clearable>
|
||||
<el-input
|
||||
class="seach_input"
|
||||
v-model="LonAndLa.Lon.lonmiao"
|
||||
placeholder="秒"
|
||||
clearable
|
||||
>
|
||||
<template #append>″</template>
|
||||
</el-input>
|
||||
</div>
|
||||
@ -58,13 +102,28 @@
|
||||
<div class="LatDiv">
|
||||
纬度:
|
||||
<div class="inputDiv">
|
||||
<el-input class="seach_input" v-model="LonAndLa.Lat.latdu" placeholder="度" clearable>
|
||||
<el-input
|
||||
class="seach_input"
|
||||
v-model="LonAndLa.Lat.latdu"
|
||||
placeholder="度"
|
||||
clearable
|
||||
>
|
||||
<template #append>°</template>
|
||||
</el-input>
|
||||
<el-input class="seach_input" v-model="LonAndLa.Lat.latfen" placeholder="分" clearable>
|
||||
<el-input
|
||||
class="seach_input"
|
||||
v-model="LonAndLa.Lat.latfen"
|
||||
placeholder="分"
|
||||
clearable
|
||||
>
|
||||
<template #append>′</template>
|
||||
</el-input>
|
||||
<el-input class="seach_input" v-model="LonAndLa.Lat.latmiao" placeholder="秒" clearable>
|
||||
<el-input
|
||||
class="seach_input"
|
||||
v-model="LonAndLa.Lat.latmiao"
|
||||
placeholder="秒"
|
||||
clearable
|
||||
>
|
||||
<template #append>″</template>
|
||||
</el-input>
|
||||
</div>
|
||||
@ -80,59 +139,127 @@
|
||||
</div>
|
||||
<div class="rightbottom">
|
||||
<div class="title">
|
||||
<div style="
|
||||
<div
|
||||
style="
|
||||
width: 3px;
|
||||
height: 19px;
|
||||
opacity: 1;
|
||||
background: rgba(100, 195, 164, 1);
|
||||
margin-right: 12px;
|
||||
"></div>
|
||||
"
|
||||
></div>
|
||||
<span>信息统计</span>
|
||||
</div>
|
||||
<div class="overview" @click="e => onTab(e)">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="8">
|
||||
<div :id="SelectedText == 1 ? 'overviewItemSelect' : ''" class="overviewItem">
|
||||
<img v-if="SelectedText == 1" style="width: 14px" src="@/assets/images/triangle2.png" />
|
||||
<div
|
||||
:id="SelectedText == 1 ? 'overviewItemSelect' : ''"
|
||||
class="overviewItem"
|
||||
>
|
||||
<img
|
||||
v-if="SelectedText == 1"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle2.png"
|
||||
/>
|
||||
高标准农田
|
||||
<img v-if="SelectedText == 1" style="width: 14px" src="@/assets/images/triangle.png" />
|
||||
<img
|
||||
v-if="SelectedText == 1"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle.png"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div :id="SelectedText == 2 ? 'overviewItemSelect' : ''" class="overviewItem">
|
||||
<img v-if="SelectedText == 2" style="width: 14px" src="@/assets/images/triangle2.png" />
|
||||
<div
|
||||
:id="SelectedText == 2 ? 'overviewItemSelect' : ''"
|
||||
class="overviewItem"
|
||||
>
|
||||
<img
|
||||
v-if="SelectedText == 2"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle2.png"
|
||||
/>
|
||||
永久基本农田
|
||||
<img v-if="SelectedText == 2" style="width: 14px" src="@/assets/images/triangle.png" />
|
||||
<img
|
||||
v-if="SelectedText == 2"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle.png"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div :id="SelectedText == 3 ? 'overviewItemSelect' : ''" class="overviewItem">
|
||||
<img v-if="SelectedText == 3" style="width: 14px" src="@/assets/images/triangle2.png" />
|
||||
<div
|
||||
:id="SelectedText == 3 ? 'overviewItemSelect' : ''"
|
||||
class="overviewItem"
|
||||
>
|
||||
<img
|
||||
v-if="SelectedText == 3"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle2.png"
|
||||
/>
|
||||
耕地
|
||||
<img v-if="SelectedText == 3" style="width: 14px" src="@/assets/images/triangle.png" />
|
||||
<img
|
||||
v-if="SelectedText == 3"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle.png"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="8">
|
||||
<div :id="SelectedText == 4 ? 'overviewItemSelect' : ''" class="overviewItem">
|
||||
<img v-if="SelectedText == 4" style="width: 14px" src="@/assets/images/triangle2.png" />
|
||||
<div
|
||||
:id="SelectedText == 4 ? 'overviewItemSelect' : ''"
|
||||
class="overviewItem"
|
||||
>
|
||||
<img
|
||||
v-if="SelectedText == 4"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle2.png"
|
||||
/>
|
||||
片块信息
|
||||
<img v-if="SelectedText == 4" style="width: 14px" src="@/assets/images/triangle.png" />
|
||||
<img
|
||||
v-if="SelectedText == 4"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle.png"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div :id="SelectedText == 5 ? 'overviewItemSelect' : ''" class="overviewItem">
|
||||
<img v-if="SelectedText == 5" style="width: 14px" src="@/assets/images/triangle2.png" />
|
||||
<div
|
||||
:id="SelectedText == 5 ? 'overviewItemSelect' : ''"
|
||||
class="overviewItem"
|
||||
>
|
||||
<img
|
||||
v-if="SelectedText == 5"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle2.png"
|
||||
/>
|
||||
地块信息
|
||||
<img v-if="SelectedText == 5" style="width: 14px" src="@/assets/images/triangle.png" />
|
||||
<img
|
||||
v-if="SelectedText == 5"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle.png"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<div :id="SelectedText == 6 ? 'overviewItemSelect' : ''" class="overviewItem">
|
||||
<img v-if="SelectedText == 6" style="width: 14px" src="@/assets/images/triangle2.png" />
|
||||
<div
|
||||
:id="SelectedText == 6 ? 'overviewItemSelect' : ''"
|
||||
class="overviewItem"
|
||||
>
|
||||
<img
|
||||
v-if="SelectedText == 6"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle2.png"
|
||||
/>
|
||||
土地确权
|
||||
<img v-if="SelectedText == 6" style="width: 14px" src="@/assets/images/triangle.png" />
|
||||
<img
|
||||
v-if="SelectedText == 6"
|
||||
style="width: 14px"
|
||||
src="@/assets/images/triangle.png"
|
||||
/>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -142,8 +269,10 @@
|
||||
<span>{{ titleText }}</span>
|
||||
<p @click="Deta()">
|
||||
下载
|
||||
<img src="@/assets/icons/svg/downloads.svg"
|
||||
style="width: 14px; height: 14px; cursor: pointer" />
|
||||
<img
|
||||
src="@/assets/icons/svg/downloads.svg"
|
||||
style="width: 14px; height: 14px; cursor: pointer"
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
<div v-if="SelectedText !== 1" class="Involution">
|
||||
@ -162,14 +291,30 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="rightFoldDiv" @click="rightFoldClick()">
|
||||
<el-tooltip :disabled="!rightWraFlag" hide-after="0" :show-arrow="false" show-after="200" class="box-item"
|
||||
effect="dark" content="收起" placement="top">
|
||||
<el-tooltip
|
||||
:disabled="!rightWraFlag"
|
||||
hide-after="0"
|
||||
:show-arrow="false"
|
||||
show-after="200"
|
||||
class="box-item"
|
||||
effect="dark"
|
||||
content="收起"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon v-if="rightWraFlag">
|
||||
<img src="@/assets/images/shouhuis.png" />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
<el-tooltip :disabled="rightWraFlag" hide-after="0" :show-arrow="false" show-after="200" class="box-item"
|
||||
effect="dark" content="展开" placement="top">
|
||||
<el-tooltip
|
||||
:disabled="rightWraFlag"
|
||||
hide-after="0"
|
||||
:show-arrow="false"
|
||||
show-after="200"
|
||||
class="box-item"
|
||||
effect="dark"
|
||||
content="展开"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon v-if="!rightWraFlag">
|
||||
<img src="@/assets/images/zhankaiss.png" />
|
||||
</el-icon>
|
||||
@ -180,39 +325,77 @@
|
||||
<span><img src="@/assets/images/amplify.png" alt="" /></span>
|
||||
<span><img src="@/assets/images/reduce.png" alt="" /></span> -->
|
||||
<span @click="onMeasureLength">
|
||||
<el-tooltip class="box-item" :disabled="leftWraFlag" :show-arrow="false" hide-after="0" show-after="200"
|
||||
effect="dark" content="测量线" placement="left" offset="1">
|
||||
<el-tooltip
|
||||
class="box-item"
|
||||
:disabled="leftWraFlag"
|
||||
:show-arrow="false"
|
||||
hide-after="0"
|
||||
show-after="200"
|
||||
effect="dark"
|
||||
content="测量线"
|
||||
placement="left"
|
||||
offset="1"
|
||||
>
|
||||
<img src="@/assets/images/measure.png" alt="" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<span @click="onMeasureArea">
|
||||
<el-tooltip class="box-item" :disabled="leftWraFlag" :show-arrow="false" hide-after="0" show-after="200"
|
||||
effect="dark" content="测量面" placement="left" offset="1">
|
||||
<el-tooltip
|
||||
class="box-item"
|
||||
:disabled="leftWraFlag"
|
||||
:show-arrow="false"
|
||||
hide-after="0"
|
||||
show-after="200"
|
||||
effect="dark"
|
||||
content="测量面"
|
||||
placement="left"
|
||||
offset="1"
|
||||
>
|
||||
<img src="@/assets/images/face.png" alt="" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<span @click="removeGongju">
|
||||
<el-tooltip class="box-item" :disabled="leftWraFlag" :show-arrow="false" hide-after="0" show-after="200"
|
||||
effect="dark" content="清除" placement="left" offset="1">
|
||||
<el-tooltip
|
||||
class="box-item"
|
||||
:disabled="leftWraFlag"
|
||||
:show-arrow="false"
|
||||
hide-after="0"
|
||||
show-after="200"
|
||||
effect="dark"
|
||||
content="清除"
|
||||
placement="left"
|
||||
offset="1"
|
||||
>
|
||||
<img src="@/assets/images/shanchu.png" alt="" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="treeDiv">
|
||||
<el-tree :props="props" :data="datas" @check="layerCheckChang" :render-content="renderCustomNode"
|
||||
show-checkbox />
|
||||
<el-tree
|
||||
:props="props"
|
||||
:data="datas"
|
||||
@check="layerCheckChang"
|
||||
:render-content="renderCustomNode"
|
||||
show-checkbox
|
||||
/>
|
||||
</div>
|
||||
<div class="farmlandTimeDiv" :id="timeFlage ? 'appear' : ''" @click="e => tabTime(e)">
|
||||
<div class="farmlandTimeDivCenter">
|
||||
<div v-for="(value, key) in layersGbz" :class="{ flag: flagObj[key] == true }" :key="value">
|
||||
<div
|
||||
v-for="(value, key) in layersGbz"
|
||||
:class="{ flag: flagObj[key] == true }"
|
||||
:key="value"
|
||||
>
|
||||
{{ key }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="popup" class="ol-popup">
|
||||
<div class="pophead" style="width: 100%">
|
||||
<div id="popup-title" style="
|
||||
<div
|
||||
id="popup-title"
|
||||
style="
|
||||
font-size: 20px;
|
||||
font-weight: 400;
|
||||
letter-spacing: 1px;
|
||||
@ -221,7 +404,8 @@
|
||||
border-radius: 8px;
|
||||
margin: 20px;
|
||||
background: rgba(100, 195, 164, 0.05);
|
||||
"></div>
|
||||
"
|
||||
></div>
|
||||
<a href="#" id="popup-closer" class="ol-popup-closer"></a>
|
||||
</div>
|
||||
<div id="popup-background">
|
||||
@ -322,13 +506,13 @@ watch(
|
||||
});
|
||||
newData.forEach(item => {
|
||||
if (layersGbz[item]) {
|
||||
if (['土地确权', '三调'].includes(item)) {
|
||||
if (['土地确权', '土地利用现状'].includes(item)) {
|
||||
addUgcv(layersDicS[item]);
|
||||
} else {
|
||||
addwms(layersGbz[item]);
|
||||
}
|
||||
} else if (layersDic[item]) {
|
||||
if (['土地确权', '三调'].includes(item)) {
|
||||
if (['土地确权', '土地利用现状'].includes(item)) {
|
||||
addUgcv(layersDicS[item]);
|
||||
} else {
|
||||
addwms(layersDic[item]);
|
||||
@ -354,7 +538,7 @@ watch(
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if (layersDic[item] && !['土地确权', '三调'].includes(item)) {
|
||||
} else if (layersDic[item] && !['土地确权', '土地利用现状'].includes(item)) {
|
||||
map.getLayers()
|
||||
.getArray()
|
||||
.forEach((ite, index) => {
|
||||
@ -428,10 +612,10 @@ const datas = [
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '三调',
|
||||
label: '土地利用现状',
|
||||
children: [
|
||||
{
|
||||
label: '三调',
|
||||
label: '土地利用现状',
|
||||
},
|
||||
],
|
||||
},
|
||||
@ -505,7 +689,7 @@ let layersDicS = {
|
||||
name: 'DK3702112022WGS84',
|
||||
setOf: 'tudiquequanxk',
|
||||
},
|
||||
三调: {
|
||||
土地利用现状: {
|
||||
name: 'T2021DLTB',
|
||||
setOf: 'sandiaoshujuWGS84',
|
||||
},
|
||||
@ -532,7 +716,7 @@ let layersDic = {
|
||||
setOf: 'DK3702112022WGS84@tudiquequanxk',
|
||||
name: 'map-tudiquequanxk',
|
||||
},
|
||||
三调: {
|
||||
土地利用现状: {
|
||||
setOf: 'T2021DLTB@sandiaoshujuWGS84',
|
||||
name: 'map-sandiaoshujuWGS84',
|
||||
},
|
||||
@ -591,11 +775,7 @@ function initmap() {
|
||||
new ol.layer.Tile({
|
||||
source: new ol.source.XYZ({
|
||||
url: `${serverAPI.tiandituLayers}`,
|
||||
projection:
|
||||
serverAPI.tiandituLayers ==
|
||||
'http://59.206.203.34/tileservice/SdRasterPubMap?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=sdimg2017&STYLE=default&TILEMATRIXSET=img2017&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=application%2Fpng'
|
||||
? 'EPSG:4326'
|
||||
: 'EPSG:3857',
|
||||
projection: serverAPI.flag ? 'EPSG:4326' : 'EPSG:3857',
|
||||
}),
|
||||
preload: 20, // 设置预加载的瓦片数,这里是预加载当前级别和2个级别更低的瓦片
|
||||
}),
|
||||
@ -1127,8 +1307,8 @@ function QueryData(e, name, url, item) {
|
||||
'</div>';
|
||||
disab.value = false;
|
||||
});
|
||||
} else if (alterData.value[0].name == '三调') {
|
||||
titleDiv.innerHTML = '三调';
|
||||
} else if (alterData.value[0].name == '土地利用现状') {
|
||||
titleDiv.innerHTML = '土地利用现状';
|
||||
content.innerHTML =
|
||||
'<div class="content-children">' +
|
||||
'<p>标识码: ' +
|
||||
@ -1677,8 +1857,8 @@ function QueryData(e, name, url, item) {
|
||||
'</div>';
|
||||
disab.value = false;
|
||||
});
|
||||
} else if (attr.name == '三调') {
|
||||
titleDiv.innerHTML = '三调';
|
||||
} else if (attr.name == '土地利用现状') {
|
||||
titleDiv.innerHTML = '土地利用现状';
|
||||
content.innerHTML =
|
||||
'<div class="content-children">' +
|
||||
'<p>标识码: ' +
|
||||
@ -2150,7 +2330,7 @@ const renderCustomNode = (h, { node, data }) => {
|
||||
},
|
||||
node.label
|
||||
);
|
||||
case '三调':
|
||||
case '土地利用现状':
|
||||
return h(
|
||||
'span',
|
||||
{
|
||||
@ -2771,7 +2951,7 @@ function farmland() {
|
||||
barBorderRadius: [100, 100, 0, 0],
|
||||
},
|
||||
},
|
||||
renderItem: function (params, api) { },
|
||||
renderItem: function (params, api) {},
|
||||
data: sumData,
|
||||
},
|
||||
];
|
||||
@ -2821,7 +3001,7 @@ function farmland() {
|
||||
barBorderRadius: [100, 100, 0, 0],
|
||||
},
|
||||
},
|
||||
renderItem: function (params, api) { },
|
||||
renderItem: function (params, api) {},
|
||||
data: quantityData,
|
||||
});
|
||||
} else if (SelectedText.value == '4') {
|
||||
@ -2857,7 +3037,7 @@ function farmland() {
|
||||
barBorderRadius: [100, 100, 0, 0],
|
||||
},
|
||||
},
|
||||
renderItem: function (params, api) { },
|
||||
renderItem: function (params, api) {},
|
||||
data: quantityData,
|
||||
});
|
||||
} else if (SelectedText.value == '5') {
|
||||
@ -2893,7 +3073,7 @@ function farmland() {
|
||||
barBorderRadius: [100, 100, 0, 0],
|
||||
},
|
||||
},
|
||||
renderItem: function (params, api) { },
|
||||
renderItem: function (params, api) {},
|
||||
data: quantityData,
|
||||
});
|
||||
} else if (SelectedText.value == '6') {
|
||||
@ -2929,7 +3109,7 @@ function farmland() {
|
||||
barBorderRadius: [100, 100, 0, 0],
|
||||
},
|
||||
},
|
||||
renderItem: function (params, api) { },
|
||||
renderItem: function (params, api) {},
|
||||
data: quantityData,
|
||||
});
|
||||
}
|
||||
@ -3306,9 +3486,8 @@ $height: calc(100vh - 100px);
|
||||
|
||||
:deep() .el-tree {
|
||||
.el-tree-node {
|
||||
|
||||
// css 让父级不现实checkbox
|
||||
.is-leaf+.el-checkbox .el-checkbox__inner {
|
||||
.is-leaf + .el-checkbox .el-checkbox__inner {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
@ -3537,9 +3716,11 @@ $height: calc(100vh - 100px);
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
font-size: 14px;
|
||||
background: linear-gradient(270deg,
|
||||
rgba(19, 92, 98, 0) 0%,
|
||||
rgba(33, 169, 169, 0.36) 100%);
|
||||
background: linear-gradient(
|
||||
270deg,
|
||||
rgba(19, 92, 98, 0) 0%,
|
||||
rgba(33, 169, 169, 0.36) 100%
|
||||
);
|
||||
padding-left: 18px;
|
||||
display: flex;
|
||||
background-image: url('@/assets/images/duande.png') !important;
|
||||
@ -3571,9 +3752,11 @@ $height: calc(100vh - 100px);
|
||||
height: 28px;
|
||||
opacity: 1;
|
||||
border-radius: 4px;
|
||||
background: linear-gradient(180deg,
|
||||
rgba(30, 143, 105, 1) 0%,
|
||||
rgba(100, 195, 164, 1) 100%);
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(30, 143, 105, 1) 0%,
|
||||
rgba(100, 195, 164, 1) 100%
|
||||
);
|
||||
|
||||
border: 1.5px solid rgba(23, 194, 180, 1);
|
||||
|
||||
@ -3589,9 +3772,11 @@ $height: calc(100vh - 100px);
|
||||
height: 28px;
|
||||
opacity: 1;
|
||||
border-radius: 4px;
|
||||
background: linear-gradient(180deg,
|
||||
rgba(30, 143, 105, 1) 0%,
|
||||
rgba(100, 195, 164, 1) 100%);
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(30, 143, 105, 1) 0%,
|
||||
rgba(100, 195, 164, 1) 100%
|
||||
);
|
||||
|
||||
border: 1.5px solid rgba(23, 194, 180, 1);
|
||||
display: flex;
|
||||
@ -3715,9 +3900,11 @@ $height: calc(100vh - 100px);
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
opacity: 1;
|
||||
background: linear-gradient(90deg,
|
||||
rgba(21, 173, 148, 0.1) 0%,
|
||||
rgba(21, 173, 148, 0) 100%);
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(21, 173, 148, 0.1) 0%,
|
||||
rgba(21, 173, 148, 0) 100%
|
||||
);
|
||||
|
||||
div {
|
||||
display: flex;
|
||||
@ -4059,9 +4246,11 @@ $height: calc(100vh - 100px);
|
||||
height: 29px;
|
||||
margin: 0 auto;
|
||||
border-radius: 4px;
|
||||
background: linear-gradient(90deg,
|
||||
rgba(208, 245, 233, 1) 0%,
|
||||
rgba(255, 255, 255, 1) 100%);
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(208, 245, 233, 1) 0%,
|
||||
rgba(255, 255, 255, 1) 100%
|
||||
);
|
||||
color: rgba(100, 195, 164, 1);
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
@ -4211,11 +4400,11 @@ $height: calc(100vh - 100px);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&>div {
|
||||
& > div {
|
||||
display: flex;
|
||||
margin-bottom: 10px;
|
||||
|
||||
&>div:nth-child(1) {
|
||||
& > div:nth-child(1) {
|
||||
font-weight: 400;
|
||||
letter-spacing: 0px;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
@ -4224,7 +4413,7 @@ $height: calc(100vh - 100px);
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
&>div:nth-child(2) {
|
||||
& > div:nth-child(2) {
|
||||
color: rgba(255, 255, 255, 1);
|
||||
width: 129px;
|
||||
height: 24px;
|
||||
|
Reference in New Issue
Block a user