村庄管理
This commit is contained in:
parent
cdc209485f
commit
9ad7a9e201
|
|
@ -13,8 +13,8 @@ VITE_PROXY_API = /dev-api
|
|||
|
||||
# http://42.193.40.239:8017/doc.html//线上 http://192.168.110.186:8017/doc.html//本地
|
||||
|
||||
VITE_PROXY = [ ["/dev-api", "http://42.193.40.239:8017" ],["/dev-img-api", "http://file.sczysoft.com" ]]
|
||||
# VITE_PROXY = [ ["/dev-api", "http://192.168.110.186:8017" ],["/dev-img-api", "http://file.sczysoft.com" ]]
|
||||
# VITE_PROXY = [ ["/dev-api", "http://42.193.40.239:8017" ],["/dev-img-api", "http://file.sczysoft.com" ]]
|
||||
VITE_PROXY = [ ["/dev-api", "http://192.168.110.186:8017" ],["/dev-img-api", "http://file.sczysoft.com" ]]
|
||||
#
|
||||
VITE_GLOB_UPLOAD_URL=/dev-api
|
||||
VITE_UPLOAD_IMG_URL=/dev-img-api
|
||||
|
|
|
|||
23
src/api/base.ts
Normal file
23
src/api/base.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
/**
|
||||
*村庄管理-村庄分页
|
||||
*/
|
||||
export function orgPage(data) {
|
||||
return request({
|
||||
url: `/common/sysorg/orgPage`,
|
||||
method: "GET",
|
||||
params: data
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*村庄管理-新增或修改村庄
|
||||
*/
|
||||
export function orgAdd(params) {
|
||||
return request({
|
||||
url: `/common/sysorg/orgAdd`,
|
||||
method: "POST",
|
||||
data: params
|
||||
});
|
||||
}
|
||||
|
|
@ -119,70 +119,70 @@ function pro() {
|
|||
|
||||
<style lang="scss" scoped>
|
||||
.tools {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 20px;
|
||||
white-space: nowrap;
|
||||
.buttons {
|
||||
margin-right: 20px;
|
||||
.item {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 24px;
|
||||
width: 34px;
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
.el-icon {
|
||||
color: var(--el-text-color-primary);
|
||||
transition: var(--el-transition-color);
|
||||
}
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 20px;
|
||||
white-space: nowrap;
|
||||
.buttons {
|
||||
margin-right: 20px;
|
||||
.item {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 24px;
|
||||
width: 34px;
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
.el-icon {
|
||||
color: var(--el-text-color-primary);
|
||||
transition: var(--el-transition-color);
|
||||
}
|
||||
}
|
||||
.item-pro {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
padding: 0 10px;
|
||||
transform-origin: right center;
|
||||
animation: pro-text 3s ease-out infinite;
|
||||
@keyframes pro-text {
|
||||
0%,
|
||||
20% {
|
||||
transform: scale(1);
|
||||
}
|
||||
50%,
|
||||
70% {
|
||||
transform: scale(1.2);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
.el-icon {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.title {
|
||||
padding-left: 5px;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
background-image: linear-gradient(to right, #ffa237, #fc455d);
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
.item-pro {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
padding: 0 10px;
|
||||
transform-origin: right center;
|
||||
animation: pro-text 3s ease-out infinite;
|
||||
@keyframes pro-text {
|
||||
0%,
|
||||
20% {
|
||||
transform: scale(1);
|
||||
}
|
||||
50%,
|
||||
70% {
|
||||
transform: scale(1.2);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
.el-icon {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.title {
|
||||
padding-left: 5px;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
background-image: linear-gradient(to right, #ffa237, #fc455d);
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
:deep(.user-container) {
|
||||
display: inline-block;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
cursor: pointer;
|
||||
.user-wrapper {
|
||||
.el-avatar {
|
||||
vertical-align: middle;
|
||||
margin-top: -2px;
|
||||
margin-right: 4px;
|
||||
display: inline-block;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
cursor: pointer;
|
||||
.user-wrapper {
|
||||
.el-avatar {
|
||||
vertical-align: middle;
|
||||
margin-top: -2px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ export default {
|
|||
meta: {
|
||||
icon: 'point',
|
||||
auth: "emer.house",
|
||||
title: '物资管理',
|
||||
title: '应急仓库',
|
||||
breadcrumb: true, //是否显示面包屑
|
||||
},
|
||||
children: [
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ const useUserStore = defineStore(
|
|||
'user',
|
||||
{
|
||||
state: () => ({
|
||||
user: localStorage.user || '',
|
||||
account: localStorage.account || '',
|
||||
token: localStorage.token || '',
|
||||
failure_time: localStorage.failure_time || '',
|
||||
user: localStorage.user_df || '',
|
||||
account: localStorage.account_df || '',
|
||||
token: localStorage.token_df || '',
|
||||
failure_time: localStorage.failure_time_df || '',
|
||||
permissions: []
|
||||
}),
|
||||
getters: {
|
||||
|
|
@ -31,12 +31,13 @@ const useUserStore = defineStore(
|
|||
login(data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
loginIn(data).then(res => {
|
||||
console.log(res,'res====>');
|
||||
if (res.code == 1) {
|
||||
conpanyInfo(res.data.sysuserid).then(result => {
|
||||
localStorage.setItem('user-df', JSON.stringify(res.data))
|
||||
localStorage.setItem('account-df', res.data.postName)
|
||||
localStorage.setItem('token-df', res.data.tokenValue)
|
||||
localStorage.setItem('failure_time-df', 1664008260)
|
||||
localStorage.setItem('user_df', JSON.stringify(res.data))
|
||||
localStorage.setItem('account_df', res.data.postName)
|
||||
localStorage.setItem('token_df', res.data.tokenValue)
|
||||
localStorage.setItem('failure_time_df', 1664008260)
|
||||
resolve()
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
|
|
@ -53,10 +54,10 @@ const useUserStore = defineStore(
|
|||
return new Promise(resolve => {
|
||||
const routeStore = useRouteStore()
|
||||
const menuStore = useMenuStore()
|
||||
localStorage.removeItem('account-df')
|
||||
localStorage.removeItem('token-df')
|
||||
localStorage.removeItem('user-df')
|
||||
localStorage.removeItem('failure_time-df')
|
||||
localStorage.removeItem('account_df')
|
||||
localStorage.removeItem('token_df')
|
||||
localStorage.removeItem('user_df')
|
||||
localStorage.removeItem('failure_time_df')
|
||||
this.account = ''
|
||||
this.token = ''
|
||||
this.failure_time = ''
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ function configRequest(service: {
|
|||
service.interceptors.request.use(
|
||||
(config: { headers: { [x: string]: string } }) => {
|
||||
// tokencancel 跳转白名单不携带token
|
||||
const token = localStorage.getItem("token");
|
||||
const token = localStorage.getItem("token_df");
|
||||
const tokencancel = localStorage.getItem('token-cancel');
|
||||
let user= JSON.parse(localStorage.getItem("user"));
|
||||
let user= JSON.parse(localStorage.getItem("user_df"));
|
||||
if (!tokencancel && token) {
|
||||
// config.headers["userToken"] = token || "";
|
||||
config.headers[user.tokenName] = user.tokenValue;
|
||||
|
|
@ -62,13 +62,13 @@ function configRequest(service: {
|
|||
const code = (res.data && res.data.code) || res.status;
|
||||
const msg = res.data.msg;
|
||||
if (code === 401) {
|
||||
localStorage.setItem('token', "")
|
||||
localStorage.setItem('token_df', "")
|
||||
} else if (code === 500) {
|
||||
alert(msg);
|
||||
return Promise.reject("error");
|
||||
} else if (code == 28) {
|
||||
alert("登录状态已过期,请重新登录!");
|
||||
localStorage.setItem('token', "")
|
||||
localStorage.setItem('token_df', "")
|
||||
location.reload();
|
||||
} else {
|
||||
return res.data;
|
||||
|
|
|
|||
|
|
@ -16,23 +16,43 @@
|
|||
:model="formData"
|
||||
class="center-form"
|
||||
>
|
||||
<el-form-item label="村庄名称" prop="cName" style="width: 94%">
|
||||
<el-form-item label="村庄名称" prop="orgname">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
type="input"
|
||||
v-model="formData.cName"
|
||||
v-model="formData.orgname"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="村长姓名" prop="name">
|
||||
<el-input placeholder="请输入" type="input" v-model="formData.name" />
|
||||
<el-form-item prop="superiororgcode" label="所属区域">
|
||||
<el-cascader
|
||||
ref="cascader"
|
||||
v-model="formData.superiororgcode"
|
||||
placeholder="请选择地区"
|
||||
:options="orgList"
|
||||
:props="{
|
||||
checkStrictly: true,
|
||||
label: 'orgname',
|
||||
value: 'orgcode',
|
||||
}"
|
||||
clearable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="phone">
|
||||
<el-form-item label="负责人" prop="charger">
|
||||
<el-input placeholder="请输入负责人" type="input" v-model="formData.charger" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="telephone">
|
||||
<el-input
|
||||
placeholder="请输入"
|
||||
placeholder="请输入联系电话"
|
||||
type="input"
|
||||
v-model="formData.phone"
|
||||
v-model="formData.telephone"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item prop="sortId" label="排序">
|
||||
<el-input-number
|
||||
v-model="formData.sortId"
|
||||
:min="1"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</BaseDialog>
|
||||
|
|
@ -40,7 +60,12 @@
|
|||
<script setup lang='ts'>
|
||||
import { reactive, ref, onMounted, watch } from "vue";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
|
||||
import { areaTree } from "@/api/account";
|
||||
import { orgAdd } from "@/api/base";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const userStore = useUserStore();
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
const userId = ref(user.value.userId);
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
|
|
@ -49,12 +74,15 @@ const props = defineProps({
|
|||
form: Object,
|
||||
});
|
||||
|
||||
|
||||
const emits = defineEmits(["close"]);
|
||||
const titleName = ref("新增");
|
||||
// 表单
|
||||
const formRef = ref<FormInstance>();
|
||||
const ruleForm = reactive<FormRules>({
|
||||
itemTitle: [{ required: true, message: "请输入内容", trigger: "blur" }],
|
||||
orgname: [{ required: true, message: "请输入村庄名称", trigger: "blur" }],
|
||||
sortId: [{ required: true, message: "请输入排序", trigger: "blur" }],
|
||||
superiororgcode: [{ required: true, message: "请选择所属地区", trigger: "blur" }],
|
||||
});
|
||||
const formData = ref<any>({});
|
||||
|
||||
|
|
@ -62,25 +90,62 @@ const formData = ref<any>({});
|
|||
const handleSubmit = () => {
|
||||
formRef.value?.validate((valid) => {
|
||||
if (valid) {
|
||||
let params = {
|
||||
orgname:formData.value.orgname,
|
||||
superiororgcode:'',
|
||||
sortId:formData.value.sortId,
|
||||
charger:formData.value.charger,
|
||||
telephone:formData.value.telephone,
|
||||
orgcode:formData.value.orgcode?formData.value.orgcode:null,
|
||||
};
|
||||
if (formData.value.superiororgcode instanceof Array) {
|
||||
params.superiororgcode = formData.value.superiororgcode[formData.value.superiororgcode.length - 1];
|
||||
}else{
|
||||
params.superiororgcode = formData.value.superiororgcode;
|
||||
};
|
||||
orgAdd(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
ElMessage({
|
||||
message: "保存成功",
|
||||
type: "success",
|
||||
});
|
||||
onclone();
|
||||
}else{
|
||||
ElMessage({
|
||||
message: res.message,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
//获取地区
|
||||
const orgList = ref([]);
|
||||
const getareaTree = () => {
|
||||
areaTree(userId.value).then((res: any) => {
|
||||
orgList.value = res.data;
|
||||
});
|
||||
};
|
||||
//关闭弹窗
|
||||
const onclone = () => {
|
||||
formRef.value?.clearValidate();
|
||||
formData.value = {};
|
||||
emits("close");
|
||||
};
|
||||
onMounted(() => {});
|
||||
onMounted(() => {
|
||||
getareaTree();
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.form,
|
||||
(val: any) => {
|
||||
titleName.value = val.id ? "编辑" : "新增";
|
||||
formData.value = JSON.parse(JSON.stringify(val));
|
||||
|
||||
}
|
||||
);
|
||||
</script>
|
||||
<style scoped></style>
|
||||
<style scoped lang="scss">
|
||||
</style>
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div style="width: 30%;">
|
||||
<div>
|
||||
<el-input
|
||||
v-model="search"
|
||||
|
|
@ -55,21 +55,21 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="cName"
|
||||
prop="orgname"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="村庄名称"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
prop="charger"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="村长"
|
||||
label="负责人"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="phone"
|
||||
prop="telephone"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="联系电话"
|
||||
|
|
@ -89,13 +89,6 @@
|
|||
<svg-icon name="edit" class="icon"></svg-icon>
|
||||
<span class="edit">编辑</span>
|
||||
</span>
|
||||
<span
|
||||
class="operate"
|
||||
@click="(currentItem = scope.row), (visible = true)"
|
||||
>
|
||||
<svg-icon name="detail" class="icon"></svg-icon>
|
||||
<span class="detail">详情</span>
|
||||
</span>
|
||||
<span class="operate" @click="del(scope.row, '删除')">
|
||||
<svg-icon name="delete" class="icon"></svg-icon>
|
||||
<span class="func">删除</span>
|
||||
|
|
@ -119,7 +112,7 @@
|
|||
<add-edit
|
||||
:visible="dialogVisible"
|
||||
:form="currentItem"
|
||||
@close="(dialogVisible = false), (currentItem = {})"
|
||||
@close="onclone()"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -129,9 +122,11 @@ import { ElMessageBox } from "element-plus";
|
|||
import { onMounted, reactive, ref } from "vue";
|
||||
import AddEdit from "./dialog/add-edit.vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { orgPage } from "@/api/base";
|
||||
const router = useRouter();
|
||||
|
||||
const search = ref([]);
|
||||
const tableDataloading = ref(false);
|
||||
const search = ref('');
|
||||
const currentPage = ref(1);
|
||||
const pageSize = ref(10);
|
||||
const total = ref(0);
|
||||
|
|
@ -152,28 +147,44 @@ const del = (item, tips) => {
|
|||
type: "warning",
|
||||
}).then(() => {});
|
||||
};
|
||||
const getList = () => {
|
||||
tableDataloading.value = true;
|
||||
let params = {
|
||||
limit: pageSize.value,
|
||||
page: currentPage.value,
|
||||
condition: search.value,
|
||||
};
|
||||
orgPage(params).then((res: any) => {
|
||||
tableData.value = res.data.list;
|
||||
total.value = res.data.total;
|
||||
tableDataloading.value = false;
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(() => {});
|
||||
//关闭详情弹窗
|
||||
const onclone = () => {
|
||||
dialogVisible.value = false;
|
||||
currentItem.value = {};
|
||||
getList();
|
||||
};
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgba(8, 33, 85, 0.1);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
.table {
|
||||
margin-top: 16px;
|
||||
}
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
box-sizing: border-box;
|
||||
.table {
|
||||
margin-top: 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -117,15 +117,9 @@
|
|||
:disabled="props.readonly"
|
||||
>
|
||||
<img
|
||||
<<<<<<< HEAD:src/views/emergency/equip/inventory/AddWarehouse.vue
|
||||
v-if="addPostFactorForm.equipPhoto"
|
||||
:src="addPostFactorForm.equipPhoto"
|
||||
style="width: 100%; height: 100%;"
|
||||
=======
|
||||
v-if="addForm.equipPhoto"
|
||||
:src="baseImgUrl + addForm.equipPhoto"
|
||||
style="width: 100%; height: 100%"
|
||||
>>>>>>> e36af856493c21fdd846c5881a8f69d73962aad5:src/views/emergency/house/dialog/add-equip-dialog.vue
|
||||
style="width: 100%; height: 100%;"
|
||||
/>
|
||||
<el-icon v-else class="avatar-uploader-icon">
|
||||
<Plus />
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="percentage-content">
|
||||
<div class="content">
|
||||
<div style="margin-bottom: 16px" class="h-layout space-between h-center">
|
||||
<div style="margin-bottom: 16px;" class="h-layout space-between h-center">
|
||||
<div>
|
||||
<div class="h-layout">
|
||||
<div
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div style="width: 30%;">
|
||||
<div>
|
||||
<el-input
|
||||
v-model="search"
|
||||
|
|
@ -210,19 +210,23 @@ onMounted(() => {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
// flex: auto;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgba(8, 33, 85, 0.1);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
// flex: auto;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-moz-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-o-box-sizing: border-box;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -38,23 +38,7 @@
|
|||
clearable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item prop="possession" label="队伍层级">
|
||||
<el-select v-model="addPostFactorForm.possession" placeholder="请选择队伍层级">
|
||||
<el-option
|
||||
v-for="item in levelList"
|
||||
:key="item.value"
|
||||
:label="item.value"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="personnum" label="人数">
|
||||
<el-input-number
|
||||
v-model="addPostFactorForm.personnum"
|
||||
:min="1"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item prop="chkbillname" label="负责人">
|
||||
<el-input
|
||||
placeholder="请输入负责人"
|
||||
|
|
@ -69,7 +53,13 @@
|
|||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="chkbillname" style="width: 100%" label="队伍简介">
|
||||
<el-form-item prop="personnum" label="人数">
|
||||
<el-input-number
|
||||
v-model="addPostFactorForm.personnum"
|
||||
:min="1"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item prop="chkbillname" style="width: 100%;" label="队伍简介">
|
||||
<el-input
|
||||
placeholder="请输入队伍简介"
|
||||
type="textarea"
|
||||
|
|
@ -97,12 +87,6 @@ const userId = ref(user.value.userId);
|
|||
const planId = ref("");
|
||||
const indexClassify = ref([]);
|
||||
const fileList = ref<any>([]);
|
||||
const levelList = ref([
|
||||
{ value: "区级" },
|
||||
{ value: "镇级" },
|
||||
{ value: "园区" },
|
||||
{ value: "企业" },
|
||||
]);
|
||||
const ruleForm = reactive<FormRules>({
|
||||
teamname: [{ required: true, message: "请输入队伍名称", trigger: "change" }],
|
||||
orgcode: [{ required: true, message: "请选择所属区域", trigger: "blur" }],
|
||||
|
|
@ -171,15 +155,15 @@ watch(
|
|||
|
||||
<style lang="scss" scoped>
|
||||
.detailForm-content {
|
||||
margin-right: 30px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
:deep(.el-form) {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// justify-content: space-around;
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// justify-content: space-around;
|
||||
justify-content: space-between;
|
||||
}
|
||||
:deep(.el-form-item) {
|
||||
width: 47%;
|
||||
width: 47%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="percentage-content">
|
||||
<div class="content">
|
||||
<div style="margin-bottom: 16px" class="h-layout space-between h-center">
|
||||
<div style="margin-bottom: 16px;" class="h-layout space-between h-center">
|
||||
<div>
|
||||
<div class="h-layout">
|
||||
<div class="tool-item" @click="(dialogVisible = true), (form = {})">
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 30%">
|
||||
<div style="width: 30%;">
|
||||
<div>
|
||||
<el-input
|
||||
v-model="search"
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="orgcode"
|
||||
prop="areaName"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="所属区域"
|
||||
|
|
@ -183,6 +183,7 @@ const todetail = (id) => {
|
|||
const onclone = () => {
|
||||
dialogVisible.value = false;
|
||||
form.value = {};
|
||||
getList();
|
||||
};
|
||||
onMounted(() => {
|
||||
getList();
|
||||
|
|
@ -190,19 +191,16 @@ onMounted(() => {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
// flex: auto;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgba(8, 33, 85, 0.1);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
// flex: auto;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden !important;
|
||||
box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -57,30 +57,6 @@
|
|||
clearable
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="队伍层级">
|
||||
<el-select
|
||||
:readonly="!readonly"
|
||||
v-model="detailForm.possession"
|
||||
placeholder="请选择队伍层级"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in levelList"
|
||||
:key="item.value"
|
||||
:label="item.value"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="人数" prop="personnum">
|
||||
<el-input
|
||||
type="number"
|
||||
min="0"
|
||||
:readonly="!readonly"
|
||||
v-model="detailForm.personnum"
|
||||
onkeyup="value=value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人">
|
||||
<el-input
|
||||
:readonly="!readonly"
|
||||
|
|
@ -93,7 +69,16 @@
|
|||
v-model="detailForm.principaltel"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="队伍简介" style="width: 100%">
|
||||
<el-form-item label="人数" prop="personnum">
|
||||
<el-input
|
||||
type="number"
|
||||
min="0"
|
||||
:readonly="!readonly"
|
||||
v-model="detailForm.personnum"
|
||||
onkeyup="value=value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="队伍简介" style="width: 100%;">
|
||||
<el-input
|
||||
:readonly="!readonly"
|
||||
type="textarea"
|
||||
|
|
@ -136,7 +121,7 @@
|
|||
:data="tableData"
|
||||
border
|
||||
header-row-class-name="el-one-header"
|
||||
style="width: 100%; margin-top: 30px"
|
||||
style="width: 100%; margin-top: 30px;"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column type="selection" align="center" width="55">
|
||||
|
|
@ -307,12 +292,6 @@ const ruleForm = reactive<FormRules>({
|
|||
personnum: [{ required: true, message: "请输入人数", trigger: "change" }],
|
||||
});
|
||||
const readonly = ref(false);
|
||||
const levelList = ref([
|
||||
{ value: "区级" },
|
||||
{ value: "镇级" },
|
||||
{ value: "园区" },
|
||||
{ value: "企业" },
|
||||
]);
|
||||
const tableDataloading = ref(false);
|
||||
const tableData = ref([]);
|
||||
|
||||
|
|
@ -444,29 +423,28 @@ onMounted(() => {
|
|||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgba(8, 33, 85, 0.1);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden !important;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
border-radius: 0.26042vw;
|
||||
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
|
||||
height: 100%;
|
||||
padding: 0.83333vw;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden !important;
|
||||
box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.detailForm-content {
|
||||
margin-right: 30px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
:deep(.el-form) {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
}
|
||||
:deep(.el-form-item) {
|
||||
width: 45%;
|
||||
width: 45%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -56,6 +56,7 @@ function handleLogin() {
|
|||
path: "/home/index",
|
||||
});
|
||||
router.go(0);
|
||||
|
||||
})
|
||||
.catch((res) => {
|
||||
getCode();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user