Commit 3be06ee0d6d211738ac63d19df1bf1be01cd6b11

Authored by 杨泽宇
2 parents 4961d065 edd59199
src/api/housekeeper/buildinMganager.ts
@@ -8,52 +8,19 @@ export function getTableList(params:any) { @@ -8,52 +8,19 @@ export function getTableList(params:any) {
8 params: params 8 params: params
9 }) 9 })
10 } 10 }
11 -// 根据条件查询列表  
12 -export function residentListByCondition(params:any) {  
13 - return request({  
14 - method: 'get',  
15 - url: '/resident/residentListByCondition',  
16 - params: params  
17 - })  
18 -}  
19 -  
20 -// 房屋信息  
21 -export function getHouse(params:any) { 11 +// 修改
  12 +export function insertOrUpdate(params:any) {
22 return request({ 13 return request({
23 method: 'post', 14 method: 'post',
24 - url: '/house/getHouse',  
25 - params: params  
26 - })  
27 -}  
28 -// 删除  
29 -export function deleteResident(params:any) {  
30 - return request({  
31 - method: 'delete',  
32 - url: '/resident/deleteResident',  
33 - params: params 15 + url: '/housekeeper/insertOrUpdate',
  16 + data: params
34 }) 17 })
35 } 18 }
36 // 删除 19 // 删除
37 -export function changeBinding(params:any) { 20 +export function deleteHousekeeper(params:any) {
38 return request({ 21 return request({
39 method: 'PUT', 22 method: 'PUT',
40 - url: '/resident/changeBinding',  
41 - params: params  
42 - })  
43 -}  
44 -// 获取详情  
45 -export function getResidentById(params:any) {  
46 - return request({  
47 - method: 'get',  
48 - url: '/resident/getResidentById', 23 + url: '/housekeeper/deleteHousekeeper',
49 params: params 24 params: params
50 }) 25 })
51 } 26 }
52 -// 修改  
53 -export function update(params:any) {  
54 - return request({  
55 - method: 'post',  
56 - url: '/resident/update',  
57 - data: params  
58 - })  
59 -}  
src/api/request.ts
@@ -27,23 +27,25 @@ instance.interceptors.request.use( @@ -27,23 +27,25 @@ instance.interceptors.request.use(
27 instance.interceptors.response.use( 27 instance.interceptors.response.use(
28 response => { 28 response => {
29 if (response) { 29 if (response) {
30 - console.log(response?.data?.errorCode)  
31 - switch (~~response?.data?.errorCode) {  
32 - case 0:  
33 - return response  
34 - break;  
35 - case 10002:  
36 - ElMessage.error(response?.data?.errorMessage || '登录失效');  
37 - router.push({  
38 - path: 'login'  
39 - })  
40 - break;  
41 - case 500:  
42 - ElMessage.error(`${response?.data?.errorMessage},请联系管理员`)  
43 - Promise.reject(response?.data)  
44 - break;  
45 - default:  
46 - ElMessage.error(response?.data?.errorMessage || '操作失败'); 30 + if (response?.data?.errorCode === 0) {
  31 + return response
  32 + } else {
  33 +
  34 + switch (~~response?.data?.errorCode) {
  35 + case 10002:
  36 + ElMessage.error(response?.data?.errorMessage || '登录失效');
  37 + router.push({
  38 + path: 'login'
  39 + })
  40 + break;
  41 + case 500:
  42 + ElMessage.error(`${response?.data?.errorMessage}`)
  43 + break;
  44 + default:
  45 + ElMessage.error(response?.data?.errorMessage || '操作失败');
  46 + break
  47 + }
  48 + return Promise.reject()
47 } 49 }
48 } 50 }
49 }, 51 },
src/views/housekeeper/buildinMganager/detail.vue
1 <script setup lang="ts"> 1 <script setup lang="ts">
2 -import { reactive, ref, onMounted,getCurrentInstance } from "vue"; 2 +import { reactive, ref, getCurrentInstance,defineExpose } from "vue";
3 import type { ElForm } from "element-plus"; 3 import type { ElForm } from "element-plus";
4 -import { addOrUpdate } from "@/api/community/residence.ts"; 4 +import { insertOrUpdate } from "@/api/housekeeper/buildinMganager.ts";
5 5
6 const ruleFormRef = ref<InstanceType<typeof ElForm>>(); 6 const ruleFormRef = ref<InstanceType<typeof ElForm>>();
7 -let instance: ComponentInternalInstance | null = getCurrentInstance();//获取app实例 7 +let instance: ComponentInternalInstance | null = getCurrentInstance(); //获取app实例
8 // 声明props 8 // 声明props
9 const props = defineProps({ 9 const props = defineProps({
10 formObj: { 10 formObj: {
11 type: Object, 11 type: Object,
12 default: { 12 default: {
13 name: null, 13 name: null,
14 - address: null,  
15 - locality: null,  
16 - buildingCount: null,  
17 - storeroomCount: null,  
18 - truckSpaceCount: null, 14 + mobile: null,
  15 + idcard: null,
  16 + type: null,
  17 + gender: null,
  18 + censusRegister: null,
  19 + birthdate: null,
  20 + nationality: null,
19 }, 21 },
20 }, 22 },
21 }); 23 });
22 24
23 let loading = ref(false); 25 let loading = ref(false);
24 26
  27 +const data = reactive({
  28 + options: [
  29 + { label: "选举", value: 0 },
  30 + { label: "派驻", value: 1 },
  31 + ],
  32 + genderList: [
  33 + { label: "男", value: 1 },
  34 + { label: "女", value: 0 },
  35 + ],
  36 +});
  37 +
25 // 表单验证 38 // 表单验证
26 const rules = reactive({ 39 const rules = reactive({
27 name: [ 40 name: [
28 { 41 {
29 required: true, 42 required: true,
30 - message: "请输入小区名", 43 + message: "请输入名",
31 trigger: "blur", 44 trigger: "blur",
32 }, 45 },
33 ], 46 ],
34 - locality: [ 47 + mobile: [
35 { 48 {
36 required: true, 49 required: true,
37 - message: "请输入所在地区", 50 + message: "请输入手机号",
38 trigger: "blur", 51 trigger: "blur",
39 }, 52 },
40 ], 53 ],
41 - address: [ 54 + idcard: [
42 { 55 {
43 required: true, 56 required: true,
44 - message: "请输入地址", 57 + message: "请输入身份证号",
45 trigger: "blur", 58 trigger: "blur",
46 }, 59 },
47 ], 60 ],
48 - buildingCount: [ 61 + type: [
49 { 62 {
50 required: true, 63 required: true,
51 - message: "请输入楼座数",  
52 - trigger: "blur", 64 + message: "请选择类型",
  65 + trigger: "change",
53 }, 66 },
54 ], 67 ],
55 - storeroomCount: [ 68 + gender: [
56 { 69 {
57 required: true, 70 required: true,
58 - message: "请输入储藏室数",  
59 - trigger: "blur",  
60 - },  
61 - ],  
62 - truckSpaceCount: [  
63 - {  
64 - required: true,  
65 - message: "请输入车位数",  
66 - trigger: "blur", 71 + message: "请输入选择性别",
  72 + trigger: "change",
67 }, 73 },
68 ], 74 ],
69 }); 75 });
@@ -82,54 +88,124 @@ let submitForm = (formEl: InstanceType&lt;typeof ElForm&gt; | undefined) =&gt; { @@ -82,54 +88,124 @@ let submitForm = (formEl: InstanceType&lt;typeof ElForm&gt; | undefined) =&gt; {
82 if (!formEl) return; 88 if (!formEl) return;
83 formEl.validate((valid) => { 89 formEl.validate((valid) => {
84 if (valid) { 90 if (valid) {
85 - addOrUpdate(props.formObj).then((res) => {  
86 - loading.value = false;  
87 - emit("success"); 91 + insertOrUpdate(props.formObj).then((res) => {
  92 + loading.value = false;
  93 + emit("success");
88 }); 94 });
89 } else { 95 } else {
90 - instance?.proxy?.$message.error('请完善信息')//调用 96 + instance?.proxy?.$message.error("请完善信息"); //调用
91 loading.value = false; 97 loading.value = false;
92 return false; 98 return false;
93 } 99 }
94 }); 100 });
95 }; 101 };
96 - 102 +/**
  103 + * 重置
  104 + */
  105 +let resetForm = () => {
  106 + ruleFormRef.value.resetFields();
  107 +};
97 /** 108 /**
98 * 取消提交 109 * 取消提交
99 */ 110 */
100 const cancel: void = () => { 111 const cancel: void = () => {
101 emit("cancel"); 112 emit("cancel");
102 }; 113 };
  114 +
  115 +defineExpose({
  116 + resetForm
  117 +});
103 </script> 118 </script>
104 119
105 <template> 120 <template>
106 - <el-form ref="ruleFormRef" :model="props.formObj" :rules="rules" label-width="100px">  
107 - <el-form-item label="小区名称:" prop="name">  
108 - <el-input v-model="props.formObj.name" placeholder="请输入名称"></el-input> 121 + <el-form
  122 + ref="ruleFormRef"
  123 + :model="props.formObj"
  124 + :rules="rules"
  125 + label-width="100px"
  126 + :inline="true"
  127 + >
  128 + <el-form-item label="姓名:" prop="name">
  129 + <el-input
  130 + v-model="props.formObj.name"
  131 + placeholder="请输入名称"
  132 + ></el-input>
109 </el-form-item> 133 </el-form-item>
110 - <el-form-item label="所在地区:" prop="locality">  
111 - <el-input v-model="props.formObj.locality" placeholder="请输入所在地区"></el-input> 134 + <el-form-item label="手机号:" prop="mobile">
  135 + <el-input
  136 + v-model="props.formObj.mobile"
  137 + placeholder="请输入所在地区"
  138 + ></el-input>
112 </el-form-item> 139 </el-form-item>
113 - <el-form-item label="详细地址:" prop="address">  
114 - <el-input v-model="props.formObj.address" placeholder="请输入详细地址"></el-input> 140 + <el-form-item label="身份证号:" prop="idcard">
  141 + <el-input
  142 + v-model="props.formObj.idcard"
  143 + placeholder="请输入详细地址"
  144 + ></el-input>
115 </el-form-item> 145 </el-form-item>
116 - <el-form-item label="楼座数:" prop="buildingCount">  
117 - <el-input v-model="props.formObj.buildingCount" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入楼座数"></el-input> 146 + <el-form-item label="类型:" prop="type">
  147 + <el-select
  148 + style="width: 200px"
  149 + v-model="props.formObj.type"
  150 + placeholder="请选择类型"
  151 + clearable
  152 + >
  153 + <el-option
  154 + v-for="item in data.options"
  155 + :key="item.value"
  156 + :label="item.label"
  157 + :value="item.value"
  158 + >
  159 + </el-option>
  160 + </el-select>
118 </el-form-item> 161 </el-form-item>
119 - <el-form-item label="储藏室数:" prop="storeroomCount">  
120 - <el-input v-model="props.formObj.storeroomCount" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入储藏室数"></el-input> 162 +
  163 + <el-form-item label="性别:" prop="gender">
  164 + <el-select
  165 + v-model="props.formObj.gender"
  166 + placeholder="请选择"
  167 + style="width: 200px"
  168 + >
  169 + <el-option
  170 + v-for="item in data.genderList"
  171 + :key="item.value"
  172 + :label="item.label"
  173 + :value="item.value"
  174 + >
  175 + </el-option>
  176 + </el-select>
121 </el-form-item> 177 </el-form-item>
122 - <el-form-item label="车位数:" prop="truckSpaceCount">  
123 - <el-input v-model="props.formObj.truckSpaceCount" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入车位数"></el-input> 178 + <el-form-item label="户籍所在地:" prop="censusRegister">
  179 + <el-input
  180 + v-model="props.formObj.censusRegister"
  181 + placeholder="请输入车位数"
  182 + ></el-input>
124 </el-form-item> 183 </el-form-item>
125 - <el-form-item>  
126 - <el-button  
127 - type="primary"  
128 - @click="submitForm(ruleFormRef)"  
129 - :loading="loading"  
130 - >保存</el-button 184 + <el-form-item label="出生日期:" prop="birthdate">
  185 + <el-date-picker
  186 + style="width: 200px"
  187 + v-model="props.formObj.birthdate"
  188 + type="date"
  189 + placeholder="选择时间"
131 > 190 >
132 - <el-button @click="cancel">取消</el-button> 191 + </el-date-picker>
  192 + </el-form-item>
  193 + <el-form-item label="民族:" prop="nationality">
  194 + <el-input
  195 + v-model="props.formObj.nationality"
  196 + placeholder="请输入车位数"
  197 + ></el-input>
133 </el-form-item> 198 </el-form-item>
  199 + <el-row>
  200 + <el-form-item>
  201 + <el-button
  202 + type="primary"
  203 + @click="submitForm(ruleFormRef)"
  204 + :loading="loading"
  205 + >保存</el-button
  206 + >
  207 + <el-button @click="cancel">取消</el-button>
  208 + </el-form-item>
  209 + </el-row>
134 </el-form> 210 </el-form>
135 </template> 211 </template>
src/views/housekeeper/buildinMganager/index.vue
1 <script setup lang="ts"> 1 <script setup lang="ts">
2 -import { reactive, onMounted, getCurrentInstance } from "vue";  
3 -import { getTableList } from "@/api/housekeeper/buildinMganager.ts"; 2 +import { reactive, onMounted,ref, getCurrentInstance } from "vue";
  3 +import { getTableList,deleteHousekeeper } from "@/api/housekeeper/buildinMganager.ts";
4 import Detail from "./detail.vue"; 4 import Detail from "./detail.vue";
5 import Pagination from "@/components/Pagination/index.vue"; 5 import Pagination from "@/components/Pagination/index.vue";
6 6
7 let instance: ComponentInternalInstance | null = getCurrentInstance(); //获取app实例 7 let instance: ComponentInternalInstance | null = getCurrentInstance(); //获取app实例
  8 +
  9 +const detailRef = ref(null);
8 // 数据筛选 10 // 数据筛选
9 const searchData = reactive({ 11 const searchData = reactive({
10 type: "", 12 type: "",
@@ -33,6 +35,7 @@ const search = (): void =&gt; { @@ -33,6 +35,7 @@ const search = (): void =&gt; {
33 data.loading = true; 35 data.loading = true;
34 getTableList(searchData) 36 getTableList(searchData)
35 .then((res) => { 37 .then((res) => {
  38 + console.log(res)
36 data.tableList = res.data.data; 39 data.tableList = res.data.data;
37 data.total = res.data.data.total; 40 data.total = res.data.data.total;
38 data.loading = false; 41 data.loading = false;
@@ -53,16 +56,16 @@ const edit = (row: Object) =&gt; { @@ -53,16 +56,16 @@ const edit = (row: Object) =&gt; {
53 }; 56 };
54 /** 57 /**
55 * 删除 58 * 删除
56 - * @param { number } neighborhoodId 小区ID 59 + * @param { number } housekeeperId 唯一标识
57 */ 60 */
58 -const remove = (neighborhoodId: number) => { 61 +const remove = (housekeeperId: number) => {
59 instance?.proxy?.$messageBox 62 instance?.proxy?.$messageBox
60 .confirm("确认要进行此操作?", "提示", { 63 .confirm("确认要进行此操作?", "提示", {
61 confirmButtonText: "确定", 64 confirmButtonText: "确定",
62 cancelButtonText: "取消", 65 cancelButtonText: "取消",
63 }) 66 })
64 .then(() => { 67 .then(() => {
65 - deleteNeighborhood({ neighborhoodId: neighborhoodId }).then((res) => { 68 + deleteHousekeeper({ housekeeperId: housekeeperId }).then((res) => {
66 instance?.proxy?.$message.success("操作成功"); //调用 69 instance?.proxy?.$message.success("操作成功"); //调用
67 search(); 70 search();
68 }); 71 });
@@ -81,8 +84,9 @@ const changeData: void = () =&gt; { @@ -81,8 +84,9 @@ const changeData: void = () =&gt; {
81 * 弹框关闭 84 * 弹框关闭
82 */ 85 */
83 const dialogClose: void = () => { 86 const dialogClose: void = () => {
84 - data.title = "新增小区"; 87 + data.title = "新增楼管";
85 data.formObj = {}; 88 data.formObj = {};
  89 + detailRef.value.resetForm();
86 }; 90 };
87 onMounted(() => { 91 onMounted(() => {
88 search(); 92 search();
@@ -161,10 +165,10 @@ onMounted(() =&gt; { @@ -161,10 +165,10 @@ onMounted(() =&gt; {
161 <el-dialog 165 <el-dialog
162 v-model="data.dialogVisible" 166 v-model="data.dialogVisible"
163 :title="data.title" 167 :title="data.title"
164 - width="30%"  
165 @close="dialogClose" 168 @close="dialogClose"
166 > 169 >
167 <Detail 170 <Detail
  171 + ref="detailRef"
168 @cancel="data.dialogVisible = false" 172 @cancel="data.dialogVisible = false"
169 @success="changeData" 173 @success="changeData"
170 :formObj="data.formObj" 174 :formObj="data.formObj"