Browse Source

Merge remote-tracking branch 'origin/dev' into dev

feature
wxz 1 year ago
parent
commit
d4dfd15efc
  1. 1
      src/views/components/resiSearch.vue
  2. 86
      src/views/modules/base/organization/organization.vue
  3. 60
      src/views/modules/shequzhili/eventOld/cpts/add.vue
  4. 21
      src/views/modules/shequzhili/eventOld/cpts/event-detail.vue
  5. 11
      src/views/modules/shequzhili/eventOld/cpts/process-form-designate.vue
  6. 102
      src/views/modules/shequzhili/eventOld/eventList.vue

1
src/views/components/resiSearch.vue

@ -1066,6 +1066,7 @@ export default {
val,
"agencyId"
);
this.form.agencyId=this.sarr[this.sarr.length - 1].agencyId
this.form.level = this.sarr[this.sarr.length - 1].level;
this.getValiheList()
},

86
src/views/modules/base/organization/organization.vue

@ -1347,14 +1347,13 @@ export default {
orgOptionProps :{
multiple: true,
emitPath: true,
value: 'id',
label: 'label',
children: 'children',
checkStrictly: true,
lazy: true,
lazyLoad: (node, resolve) => {
this.loadOptions(node, resolve)
},
value: 'agencyId',
label: 'agencyName',
children: 'subAgencyList',
checkStrictly: true
// lazyLoad: (node, resolve) => {
// this.loadOptions(node, resolve)
// },
},
dialogVisiblePeoAgency:false,//
@ -1422,40 +1421,42 @@ export default {
methods: {
getOrgTreeList () {
this.$http
.get('/actual/base/communityBuilding/tree/initTree', {})
.post('/gov/org/customeragency/agencygridtree', {})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('获取组织树成功', res.data)
this.orgOptions = []
this.orgOptions.push(res.data)
console.log(this.orgOptions,"sdkfhkjdfs");
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
async loadOptions(node, resolve) {
let data1 =node.data;
if (data1.level == 'district') {
resolve(this.orgOptions);
} else {
if(data1.level !== "building"){
const url = "/actual/base/communityBuilding/tree/nextTreeNode";
let params = {
level:data1.level,
id:data1.id
};
const { data, code, msg } =await requestGet(url, params);
data1.children=data
resolve(data);
}else{
return resolve()
}
}
},
// async loadOptions(node, resolve) {
// let data1 =node.data;
// if (data1.level == 'district') {
// resolve(this.orgOptions);
// } else {
// if(data1.level !== "building"){
// const url = "/actual/base/communityBuilding/tree/nextTreeNode";
// let params = {
// level:data1.level,
// id:data1.id
// };
// const { data, code, msg } =await requestGet(url, params);
// data1.children=data
// resolve(data);
// }else{
// return resolve()
// }
// }
// },
// id
handleChangeTransferCascader (e) {
function findItem (valueArr, coll) {
@ -1752,6 +1753,7 @@ export default {
// level agencyId
this.extractLevelAndAgencyId(this.orgOptions[0], targetAgencyIds, result);
// Set
const manageScopeArray = Array.from(result);
const url = "/gov/org/staff/editstaff";
let params = {
@ -1786,13 +1788,12 @@ export default {
// JSON level agencyId
extractLevelAndAgencyId(obj, agencyIds, result) {
if (obj && typeof obj === 'object') {
if (obj.level && obj.id && agencyIds.includes(obj.id)) {
result.add(`${obj.level}:${obj.id}`);
if (obj.level && obj.agencyId && agencyIds.includes(obj.agencyId)) {
result.add(`${obj.level}:${obj.agencyId}`);
}
if (Array.isArray(obj.children)) {
obj.children.forEach(subObj => {
if (Array.isArray(obj.subAgencyList)) {
obj.subAgencyList.forEach(subObj => {
this.extractLevelAndAgencyId(subObj, agencyIds, result);
});
}
@ -2127,11 +2128,10 @@ export default {
},
//
async xiuPeo (row) {
console.log(row);
this.modifyPeo = true;
this.peoForm.orgType = "agency";
this.userStaffId = row.staffId;
const url = "/gov/org/staff/editstaffinit";
let params = {
staffId: row.staffId,
@ -2139,12 +2139,14 @@ export default {
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
console.log("修改人员", data);
this.peoForm.name = data.name;
this.peoForm.mobile = data.mobile;
this.peoForm.post = data.workType;
// this.peoForm.gender = data.gender === 1 ? '' : ''
this.peoForm.gender = data.gender;
this.peoForm.idCard = data.idCard;
this.peoForm.agencyName=data.agencyName;
//
let existedRoleArr = [];
data.newRoleList.forEach(function (sysRole) {
@ -2160,15 +2162,14 @@ export default {
}
},
findParentPath(data,agencyIds) {
console.log(data,agencyIds,"dskck");
let paths = [];
function findPathRecursive(agencyId, node, path) {
function findPathRecursive(agencyId, node, path) {;
if (node.agencyId === agencyId) {
path.push(agencyId);
paths.push(path.slice()); // Make a copy of the path array before pushing
return true;
}
if (node.subAgencyList) {
for (let i = 0; i < node.subAgencyList.length; i++) {
if (findPathRecursive(agencyId, node.subAgencyList[i], path.concat(node.agencyId))) {
@ -2179,11 +2180,10 @@ export default {
return false;
}
agencyIds.forEach(agencyId => {
findPathRecursive(agencyId, data, []);
});
console.log(paths,"paths");
return paths;
},
//

60
src/views/modules/shequzhili/eventOld/cpts/add.vue

@ -13,7 +13,30 @@
@change="handleChangeAgency" clearable></el-cascader>
</el-form-item>
<el-form-item label="上报人" prop="name" label-width="150px" style="display: block">
<el-form-item label="诉求类型" prop="demandType" label-width="150px" style="display: block">
<el-radio-group v-model.trim="formData.demandType" @change="handleDemandTypeChange">
<el-radio label="report">事件上报</el-radio>
<el-radio label="chengguan">城管事件</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="formData.demandType === 'chengguan'" label="有无责任单位" prop="responsibleUnit" label-width="150px" style="display: block">
<el-radio-group v-model.trim="formData.responsibleUnit">
<el-radio label="yes"></el-radio>
<el-radio label="no"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="formData.demandType === 'chengguan' && formData.responsibleUnit === 'yes'" label="责任人" prop="responsibleName" label-width="150px" style="display: block">
<el-input class="cell-width-1" maxlength="10" placeholder="请输入责任人姓名" v-model.trim="formData.responsibleName">
</el-input>
</el-form-item>
<el-form-item v-if="formData.demandType === 'chengguan' && formData.responsibleUnit === 'yes'" label="联系电话" prop="responsibleMobile" label-width="150px" style="display: block">
<el-input class="cell-width-1" maxlength="30" placeholder="请输入责任人电话" v-model.trim="formData.responsibleMobile">
</el-input>
</el-form-item>
<el-form-item v-if="formData.demandType === 'report'" label="上报人" prop="name" label-width="150px" style="display: block">
<el-input class="cell-width-1" maxlength="10" placeholder="请输入上报人姓名" v-model.trim="formData.name">
</el-input>
<div>
@ -21,7 +44,7 @@
@click="handleShowPersonList">居民信息中选择</el-button>
</div>
</el-form-item>
<el-form-item label="联系电话" prop="mobile" label-width="150px" style="display: block">
<el-form-item v-if="formData.demandType === 'report'" label="联系电话" prop="mobile" label-width="150px" style="display: block">
<el-input class="cell-width-1" maxlength="30" placeholder="请输入联系电话 " v-model.trim="formData.mobile">
</el-input>
</el-form-item>
@ -132,6 +155,7 @@ var geocoder; // 新建一个正逆地址解析类
function iniFmData() {
return {
demandType:"report",//
gridId: "", //
reportUserId: "", // ID
name: "", //
@ -148,6 +172,7 @@ function iniFmData() {
// operationType: '0',//
// content: '',//
// status: '',// processingclosed_case
responsibleUnit:"yes",
};
}
@ -233,13 +258,25 @@ export default {
components: {},
computed: {
dataRule() {
const isReport = this.formData.demandType === "report";
const isChengguan = this.formData.responsibleUnit === "yes";
return {
gridId: [
{ required: true, message: "所属网格不能为空", trigger: "blur" },
],
name: [{ required: true, message: "上报人不能为空", trigger: "change" }],
demandType: [
{ required: true, message: "诉求类型不能为空", trigger: "blur" },
],
responsibleUnit: [
{ required: true, message: "有无责任单位不能为空", trigger: "blur" },
],
name: [{ required: isReport, message: "上报人不能为空", trigger: "change" }],
mobile: [
{ required: true, message: "联系电话不能为空", trigger: "blur" },
{ required: isReport, message: "联系电话不能为空", trigger: "blur" },
],
responsibleName: [{ required: isChengguan, message: "责任人不能为空", trigger: "change" }],
responsibleMobile: [
{ required: isChengguan, message: "联系电话不能为空", trigger: "blur" },
],
// idCard: [
// { required: true, message: "", trigger: "blur" },
@ -311,6 +348,10 @@ export default {
);
this.obj.level = this.sarr[this.sarr.length - 1].level
},
handleDemandTypeChange() {
this.$refs.ref_form1.clearValidate(); //
this.formData.demandType = this.formData.demandType; //
},
getLastItem(list, vals, key) {
let LIST = list || [];
for (let item of LIST) {
@ -440,13 +481,22 @@ export default {
app.util.validateRule(messageObj);
return false;
} else {
if (!formVltHelper.userOrMobile(this.formData.mobile)) {
if (this.formData.demandType === "report" && !formVltHelper.userOrMobile(this.formData.mobile)) {
this.$message({
type: "error",
message: "联系电话格式有误",
});
return false;
}
if (this.formData.demandType === "chengguan" && this.formData.responsibleUnit === "yes" && !formVltHelper.userOrMobile(this.formData.responsibleMobile)) {
this.$message({
type: "error",
message: "责任人电话格式有误",
});
return false;
}
const regCard = /(^\d{15}$)|(^\d{17}(\d|X)$)/; //1518151817X
if (
this.formData.idCard &&

21
src/views/modules/shequzhili/eventOld/cpts/event-detail.vue

@ -79,6 +79,27 @@
<span class="u-info-title-2">联系电话</span>
<span>{{ info.mobile }}</span>
</div>
<div :class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]" v-if="info.demandType==='chengguan'">
<span class="u-info-title-2">有无责任单位</span>
<span>{{ info.responsibleUnit==="yes" ? "有": "无" }}</span>
</div>
<div :class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]" v-if="info.responsibleUnit==='yes' && info.demandType==='chengguan'">
<span class="u-info-title-2">责任人</span>
<span>{{ info.responsibleName }}</span>
</div>
<div :class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]" v-if="info.responsibleUnit==='yes' && info.demandType==='chengguan'">
<span class="u-info-title-2">联系电话</span>
<span>{{ info.responsibleMobile }}</span>
</div>
<div :class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },

11
src/views/modules/shequzhili/eventOld/cpts/process-form-designate.vue

@ -45,6 +45,12 @@
</el-date-picker>
</div>
</el-form-item>
<el-form-item label="" label-width="150px"
:class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-checkbox v-model="formData.sendMsg" :true-label="1" :false-label="0">短信通知部门负责人</el-checkbox>
</div>
</el-form-item>
</el-form>
</div>
</template>
@ -63,6 +69,7 @@ export default {
categoryId: "",//
deptId: "", //
deptName: "",
sendMsg:0,
categoryList: [],
files: [] //
},
@ -203,11 +210,11 @@ export default {
handleChangeAgency(val) {
let obj = this.$refs["agencyIdArray"].getCheckedNodes()[0].data
if (obj) {
this.formData.orgType = obj.level === 'grid' ? 'grid' : 'agency'
this.formData.level = obj.level === 'grid' ? 'grid' : 'agency'
this.formData.deptId = obj.agencyId
this.formData.deptName = obj.agencyName
} else {
this.form.orgType = ''
this.form.level = ''
this.form.orgId = ''
}
},

102
src/views/modules/shequzhili/eventOld/eventList.vue

@ -87,6 +87,15 @@
</el-select>
</el-form-item>
<el-form-item label="处理时长" prop="type">
<el-select class="u-item-width-normal" v-model.trim="formData.overPeriod" placeholder="全部" size="small"
clearable>
<el-option v-for="item in overPeriodArray" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-row>
<el-col :span="24" align="right">
<el-button style="margin-left: 30px" size="small" type="primary "
@ -116,10 +125,11 @@
</el-dropdown-menu>
</el-dropdown>
<el-button @click="handleCancalDiffcult" class="diy-button--white" size="small">取消标记</el-button>
<el-button @click="handleSuperviseEvent" class="diy-button--white" size="small">督办催办</el-button>
</div>
<el-table :data="tableData" border class="m-table-item" style="width: 100%"
@selection-change="handleSelectionChange" :height="maxTableHeight">
@selection-change="handleSelectionChange" :height="maxTableHeight" :row-class-name="tableRowClassName">
<el-table-column label="" fixed="left" type="selection" align="center" width="50" />
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" />
@ -160,6 +170,12 @@
<el-table-column prop="address" align="center" :show-overflow-tooltip="true" label="地址">
</el-table-column>
<el-table-column prop="responsibleName" align="center" width="100" label="责任人" :show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="responsibleMobile" align="center" width="110" label="责任人电话" :show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="name" align="center" width="100" label="上报人" :show-overflow-tooltip="true">
</el-table-column>
@ -252,6 +268,19 @@
<el-button size="small" @click="showVoice = false">取消</el-button>
</div>
</el-dialog>
<el-dialog :title="'督办催办'" :visible.sync="showSupervise" width="40%" top="5vh" append-to-body class="dialog-h"
:close-on-click-modal="false">
<el-form :model="superviseFrom" ref="superviseFrom">
<el-form-item label="催办说明" prop="content">
<el-input v-model.trim="superviseFrom.content" class="cell-width-2" type="textarea" maxlength="500" show-word-limit :rows="5" placeholder="请填写催办说明,不超过500字"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="showSupervise = false"> </el-button>
<el-button type="primary" @click="doSuperviseEvent"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -357,6 +386,21 @@ export default {
},
],
overPeriodArray: [
{
value: "0",
label: "2天以下",
},
{
value: "1",
label: "3-4天",
},
{
value: "2",
label: "4天以上",
},
],
qudaoArray: [
{
value: "0",
@ -424,9 +468,14 @@ export default {
eventDetailData: {},
showVoice: false,
showSupervise: false,
selVoiceUrl: "",
multipleSelection: [],
superviseFrom:{
content: "",
},
};
},
computed: {
@ -477,6 +526,19 @@ export default {
});
},
tableRowClassName({ row }) {
switch (row.overPeriod) {
case '0':
return 'row-over-period-0';
case '1':
return 'row-over-period-1';
case '2':
return 'row-over-period-2';
default:
return 'row-default';
}
},
//
handleLook(row) {
let { name,reportUserId } = row
@ -527,6 +589,29 @@ export default {
this.$message.error(msg);
}
},
async handleSuperviseEvent(){
this.showSupervise = true;
},
async doSuperviseEvent() {
const url = "/governance/icEventOld/doSuperviseEvent";
if (this.multipleSelection.length == 0) {
this.$message.warning('请选择督办催办的事件')
return
}
let params = {
icEventIdList: this.multipleSelection,
content: this.superviseFrom.content,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("督办催办成功");
this.getTableData();
} else {
this.$message.error(msg);
}
this.showSupervise = false;
},
handleSearch(val) {
this.pageNo = 1;
@ -893,3 +978,18 @@ export default {
color: #fff;
}
</style>
<style>
.row-over-period-0 {
background-color: #ffffe0 !important; /* 淡黄色 */
}
.row-over-period-1 {
background-color: #ffebcd !important; /* 淡橙色 */
}
.row-over-period-2 {
background-color: #ffc0cb !important; /* 淡红色 */
}
.row-default {
background-color: #e0ffe0 !important; /* 淡绿色 */
}
</style>

Loading…
Cancel
Save