Commit f41db662 authored by zhangzhaohui's avatar zhangzhaohui

人员名单模块修改

parent 681ab846
......@@ -9,7 +9,7 @@
window.SITE_CONFIG = {};
window.SITE_CONFIG['version'] = 'v1.0.0';
window.SITE_CONFIG['nodeEnv'] = '<%= process.env.VUE_APP_NODE_ENV %>';
window.SITE_CONFIG['apiURL'] = 'http://192.168.10.229:18000/hmit-admin'; // api请求地址
window.SITE_CONFIG['apiURL'] = 'http://192.168.10.39:18000/hmit-admin'; // api请求地址
window.SITE_CONFIG['storeState'] = {}; // vuex本地储存初始化状态(用于不刷新页面的情况下,也能重置初始化项目中所有状态)
window.SITE_CONFIG['contentTabDefault'] = { // 内容标签页默认属性对象
'name': '', // 名称, 由 this.$route.name 自动赋值(默认,名称 === 路由名称 === 路由路径)
......
......@@ -3,8 +3,8 @@ const t = {}
t.loading = '加载中...'
t.brand = {}
t.brand.lg = '汇民综合管理系统'
t.brand.mini = '汇民'
t.brand.lg = '大碶街道数据分析系统'
t.brand.mini = '大碶'
t.add = '新增'
t.delete = '删除'
......
<template>
<el-dialog
:visible.sync="visible"
:title="!dataForm.id ? $t('add') : $t('update')"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px"
>
<el-form-item label="用户名" prop="name">
<el-input v-model="dataForm.name" placeholder="用户名"></el-input>
</el-form-item>
<el-form-item label="身份证号码" prop="idcard">
<el-input v-model="dataForm.idcard" placeholder="身份证号码"></el-input>
</el-form-item>
<el-form-item label="社区" prop="dqRegionId">
<el-select ref="community" @change="communityChange" style="width: 100%" v-model="dataForm.dqRegionId" placeholder="社区">
<el-option v-for="item in communityList" :key="item.id" :value="item.id" :label="item.community"></el-option>
</el-select>
<!-- <el-input ></el-input> -->
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="dataForm.address" placeholder="详细地址"></el-input>
</el-form-item>
<!-- <el-form-item
label="匹配社区地址id"
prop="dqRegionId"
>
<el-input
v-model="dataForm.dqRegionId"
placeholder="匹配社区地址id"
></el-input>
</el-form-item> -->
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>
</el-form-item>
<el-form-item label="年龄" prop="age">
<el-input v-model="dataForm.age" placeholder="年龄"></el-input>
</el-form-item>
<!-- <el-form-item label="部门ID" prop="deptId">
<el-input v-model="dataForm.deptId" placeholder="部门ID"></el-input>
</el-form-item> -->
<el-form-item
label="类型"
prop="type"
>
{{dataForm.type}}
</el-form-item>
<el-form-item
label="身体状态"
prop="bodyStatus"
>
<el-select style="width: 100%" v-model="dataForm.bodyStatus" placeholder="身体状态">
<el-option v-for="item in bodyStatusOption" :label="item.label" :key="item.value" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="dataForm.status" placeholder="状态" style="width: 100%">
<el-option label="未通知" value="1"></el-option>
<el-option label="已通知" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="数据状态" prop="dataStatus">
<el-select v-model="dataForm.dataStatus" placeholder="数据状态" style="width: 100%">
<el-option label="正常" value="1"></el-option>
<el-option label="疑问" value="2"></el-option>
<el-option label="错误" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item
label="处理状态"
prop="handleStatus"
>
<el-select style="width: 100%" v-model="dataForm.handleStatus" placeholder="处理状态">
<el-option v-for="item in handleStatusOption" :label="item.label" :key="item.value" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" :rows="4" v-model="dataForm.remark" placeholder="备注"></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t("cancel") }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{
$t("confirm")
}}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from "lodash/debounce";
export default {
data() {
const handleStatusOption = [
{label: '集中隔离', value: '1'},
{label: '居家隔离', value: '2'},
{label: '居家检测', value: '3'},
{label: '人机不符', value: '4'},
{label: '不在本地', value: '5'},
{label: '其他', value: '6'},
]
const bodyStatusOption = [
{label: '普通', value: '1'},
{label: '年老', value: '2'},
{label: '年幼', value: '3'},
{label: '残疾', value: '4'},
{label: '孕妇', value: '5'},
{label: '精神病', value: '6'},
{label: '其他', value: '7'},
]
return {
visible: false,
communityList: [],
bodyStatusOption,
handleStatusOption,
dataForm: {
id: "",
name: "",
idcard: "",
community: "",
address: "",
dqRegionId: "",
remark: "",
mobile: "",
deptId: "",
type: "",
status: "",
creator: "",
createDate: "",
updater: "",
updateDate: "",
age: "",
bodyStatus: "",
dataStatus: "",
},
};
},
computed: {
dataRule() {
return {
name: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
idcard: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
community: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
address: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
dqRegionId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
mobile: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
deptId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
status: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
age: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
dataStatus: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},
methods: {
communityChange() {
this.$nextTick(() => {
this.dataForm.community = this.$refs.community.selectedLabel
})
},
getCommunityList() {
this.$http
.get(`/dq/dqregion/list`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.communityList = res.data
})
},
init() {
if (this.communityList.length === 0) {
this.getCommunityList()
}
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo();
}
});
},
// 获取信息
getInfo() {
this.$http
.get(`/dq/dqpersonel/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
Object.keys(this.dataForm).forEach(key => {
if (key.includes('Status') || key === 'status') {
if (this.dataForm[key] !== null) {
this.dataForm[key] += ''
}
}
})
})
.catch(() => {});
},
// 表单提交
dataFormSubmitHandle: debounce(
function () {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.$http[!this.dataForm.id ? "post" : "put"](
"/dq/dqpersonel/",
this.dataForm
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-dq__dqpersonel}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('dq:dqpersonel:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('dq:dqpersonel:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" :loading="uploading" @click="importExcel">导入</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column>
<el-table-column prop="name" label="用户名" header-align="center" align="center"></el-table-column>
<el-table-column prop="idcardType" label="证件类型" header-align="center" align="center"></el-table-column>
<el-table-column prop="idcard" label="证件号码" header-align="center" align="center"></el-table-column>
<el-table-column prop="age" label="年龄" header-align="center" align="center"></el-table-column>
<el-table-column prop="community" label="社区" header-align="center" align="center"></el-table-column>
<el-table-column prop="address" label="详细地址" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="dqRegionId" label="匹配社区
地址id" header-align="center" align="center"></el-table-column> -->
<!-- <el-table-column prop="remark" label="备注" header-align="center" align="center"></el-table-column> -->
<el-table-column prop="mobile" label="手机号" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="deptId" label="部门ID" header-align="center" align="center"></el-table-column> -->
<!-- 1:密接 2:次密接,3:中高风险地区所在城市漫出人员 -->
<el-table-column prop="type" label="类型" header-align="center" align="center"></el-table-column>
<!-- <el-table-column prop="creator" label="创建者" header-align="center" align="center"></el-table-column> -->
<!-- <el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> -->
<!-- <el-table-column prop="updater" label="更新者" header-align="center" align="center"></el-table-column> -->
<!-- <el-table-column prop="updateDate" label="更新时间" header-align="center" align="center"></el-table-column> -->
<el-table-column prop="bodyStatus" label="身体状态" header-align="center" align="center">
<template slot-scope="scope">
<span :style="{'color': scope.row.bodyStatus == 1 ? '' : 'red'}">{{['普通', '年老', '年幼', '残疾', '孕妇', '精神病', '其他'][scope.row.bodyStatus - 1]}}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" header-align="center" align="center">
<template slot-scope="scope">
{{scope.row.status === null ? '' : scope.row.status == 1 ? '未通知' : '已通知'}}
</template>
</el-table-column>
<el-table-column prop="dataStatus" label="数据状态" header-align="center" align="center">
<template slot-scope="scope">
{{['正常', '疑问', '错误'][scope.row.dataStatus - 1]}}
</template>
</el-table-column>
<el-table-column prop="handleStatus" label="处理状态" header-align="center" align="center">
<template slot-scope="scope">
{{['集中隔离', '居家隔离', '居家检测', '人机不符', '不在本地', '其他'][scope.row.handleStatus - 1]}}
</template>
</el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button v-if="$hasPermission('dq:dqpersonel:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button v-if="$hasPermission('dq:dqpersonel:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
<input
class="upload-input"
accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
type="file"
@change="fileChange"
ref="uploadRef"
/>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './dqpersonel-add-or-update'
export default {
mixins: [mixinViewModule],
data () {
return {
uploading: false,
mixinViewModuleOptions: {
getDataListURL: '/dq/dqpersonel/page',
getDataListIsPage: true,
exportURL: '/dq/dqpersonel/export',
deleteURL: '/dq/dqpersonel',
deleteIsBatch: true
},
dataForm: {
id: ''
}
}
},
components: {
AddOrUpdate
},
methods: {
importExcel() {
this.$refs.uploadRef.dispatchEvent(new MouseEvent("click"));
},
fileChange() {
this.uploading = true
let uploadRef = this.$refs.uploadRef;
this.file = uploadRef.files[0];
let formData = new FormData();
formData.append("file", uploadRef.files[0]);
this.$http
.post("/dq/dqpersonel/upload", formData)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message.success('导入成功');
this.getDataList();
this.uploading = false
});
},
}
}
</script>
<style lang="scss" scoped>
.upload-input {
cursor: pointer;
opacity: 0;
width: 0;
height: 0;
}
</style>
\ No newline at end of file
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
<el-form-item label="社区" prop="community">
<el-input v-model="dataForm.community" placeholder="社区"></el-input>
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="dataForm.address" placeholder="详细地址"></el-input>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="dataForm.remark" placeholder="备注"></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
export default {
data () {
return {
visible: false,
dataForm: {
id: '',
community: '',
address: '',
remark: '',
creator: '',
createDate: '',
updater: '',
updateDate: ''
}
}
},
computed: {
dataRule () {
return {
community: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
address: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
remark: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
}
}
},
methods: {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
this.getInfo()
}
})
},
// 获取信息
getInfo () {
this.$http.get(`/dq/dqregion/${this.dataForm.id}`).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.dataForm = {
...this.dataForm,
...res.data
}
}).catch(() => {})
},
// 表单提交
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
if (!valid) {
return false
}
this.$http[!this.dataForm.id ? 'post' : 'put']('/dq/dqregion/', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
</script>
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-dq__dqregion}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('dq:dqregion:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('dq:dqregion:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column>
<el-table-column prop="community" label="社区" header-align="center" align="center"></el-table-column>
<el-table-column prop="address" label="详细地址" header-align="center" align="center"></el-table-column>
<el-table-column prop="remark" label="备注" header-align="center" align="center"></el-table-column>
<el-table-column prop="creator" label="创建者" header-align="center" align="center"></el-table-column>
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="updater" label="更新者" header-align="center" align="center"></el-table-column>
<el-table-column prop="updateDate" label="更新时间" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button v-if="$hasPermission('dq:dqregion:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
<el-button v-if="$hasPermission('dq:dqregion:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './dqregion-add-or-update'
export default {
mixins: [mixinViewModule],
data () {
return {
mixinViewModuleOptions: {
getDataListURL: '/dq/dqregion/page',
getDataListIsPage: true,
exportURL: '/dq/dqregion/export',
deleteURL: '/dq/dqregion',
deleteIsBatch: true
},
dataForm: {
id: ''
}
}
},
components: {
AddOrUpdate
}
}
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment