Browse Source

事件管理

shibei_master
jiangyy 4 years ago
parent
commit
e384aa0954
  1. BIN
      src/assets/img/shuju/measure/zhuhu_orange.png
  2. BIN
      src/assets/img/shuju/measure/zhuhu_red.png
  3. BIN
      src/assets/img/shuju/measure/zhuhu_yellow.png
  4. 22
      src/views/modules/shequzhili/event/cpts/event-info.vue
  5. 101
      src/views/modules/shequzhili/event/cpts/process-form-demand.vue
  6. 79
      src/views/modules/shequzhili/event/cpts/process-form-project.vue
  7. 91
      src/views/modules/shequzhili/event/cpts/process-form-replay.vue
  8. 116
      src/views/modules/shequzhili/event/cpts/process-form.vue
  9. 1
      src/views/modules/visual/communityGovern/shijianchuli/event-info.vue
  10. 38
      src/views/modules/visual/cpts/analyse.vue

BIN
src/assets/img/shuju/measure/zhuhu_orange.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
src/assets/img/shuju/measure/zhuhu_red.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

BIN
src/assets/img/shuju/measure/zhuhu_yellow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

22
src/views/modules/shequzhili/event/cpts/event-info.vue

@ -354,25 +354,23 @@ export default {
}, },
async handelAdd () { async handelAdd () {
if (this.pageTypeCopy === 'add') {
this.$refs.ref_add.getEventInfo()
if (this.$refs.ref_add.okflag) {
this.eventInfoData = this.$refs.ref_add.formData this.$refs.ref_add.getEventInfo()
} else { if (this.$refs.ref_add.okflag) {
return false
}
console.log('eventInfo', this.eventInfoData) this.eventInfoData = this.$refs.ref_add.formData
} else {
return false
} }
console.log('eventInfo', this.eventInfoData)
this.$refs.ref_processinfo_add.getProcessInfo() this.$refs.ref_processinfo_add.getProcessInfo()
if (this.$refs.ref_processinfo_add.okflag) { if (this.$refs.ref_processinfo_add.okflag) {
this.formData.operationType = this.$refs.ref_processinfo_add.operationType this.formData.operationType = this.$refs.ref_processinfo_add.operationType
this.eventInfoData.operationType = this.$refs.ref_processinfo_add.operationType this.eventInfoData.operationType = this.$refs.ref_processinfo_add.operationType
// this.eventInfoData.categoryList = this.$refs.ref_processinfo_add.categoryList
this.eventInfoData.categoryList = this.$refs.ref_processinfo_add.categoryList
if (this.formData.operationType === '0') { if (this.formData.operationType === '0') {
this.project = {} this.project = {}
@ -403,8 +401,6 @@ export default {
console.log('demond', this.demand) console.log('demond', this.demand)
} }
} else {
return false
} }
this.formData = { this.formData = {
@ -475,6 +471,8 @@ export default {
console.log('demond', this.demand) console.log('demond', this.demand)
let url = '/gov/project/icEvent/icEventToDemand' let url = '/gov/project/icEvent/icEventToDemand'
await this.submitDispose(url, this.demand) await this.submitDispose(url, this.demand)
} else {
this.$message.info("请选择一种处理方式");
} }
} else { } else {

101
src/views/modules/shequzhili/event/cpts/process-form-demand.vue

@ -5,7 +5,19 @@
:model="formData" :model="formData"
:rules="dataRule" :rules="dataRule"
label-width="100px"> label-width="100px">
<el-form-item label="需求内容" <el-form-item label="事件分类"
label-width="150px"
prop="categoryId">
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</el-form-item>
<el-form-item label="服务内容"
label-width="150px" label-width="150px"
prop="content"> prop="content">
<el-input v-model="formData.content" <el-input v-model="formData.content"
@ -16,7 +28,7 @@
placeholder="请输入内容"></el-input> placeholder="请输入内容"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="需求类型" <el-form-item label="服务类型"
label-width="150px" label-width="150px"
prop="categoryCode"> prop="categoryCode">
@ -40,7 +52,7 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="需求人" <el-form-item label="服务人"
label-width="150px" label-width="150px"
prop="demandUserName"> prop="demandUserName">
<el-input v-model="formData.demandUserName" <el-input v-model="formData.demandUserName"
@ -165,19 +177,19 @@ var geocoder // 新建一个正逆地址解析类
function iniFmData () { function iniFmData () {
return { return {
operationType: '2',//[0: 1: 2:] operationType: '2',//[0: 1: 2:]
icEventId: '',//Id icEventId: '',//Id
gridId: '',// gridId: '',//
categoryCode: '',// categoryCode: '',//
parentCode: '',// parentCode: '',//
content: '',// 1000 content: '',// 1000
reportType: 'self_help',// communitybuilding_caption;party;self_help reportType: 'self_help',// communitybuilding_caption;party;self_help
reportUserName: '',// reportUserName: '',//
reportUserMobile: '',// reportUserMobile: '',//
reportTime: '',// reportTime: '',//
demandUserId: '',// user.idic_resi_user.id demandUserId: '',// user.idic_resi_user.id
demandUserName: '',// demandUserName: '',//
demandUserMobile: '',// demandUserMobile: '',//
wantServiceTime: '',// wantServiceTime: '',//
serviceType: '', serviceType: '',
serverId: '', serverId: '',
@ -185,6 +197,7 @@ function iniFmData () {
serviceLocation: '',// serviceLocation: '',//
latitude: '',// latitude: '',//
longitude: '',// longitude: '',//
categoryId: ''
}; };
} }
export default { export default {
@ -213,6 +226,17 @@ export default {
], ],
serviceOptiondList: [], serviceOptiondList: [],
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
formData: iniFmData(), formData: iniFmData(),
formDataTemp: { formDataTemp: {
icEventId: "", icEventId: "",
@ -251,17 +275,20 @@ export default {
dataRule () { dataRule () {
return { return {
categoryId: [
{ required: true, message: "请填写事件分类", trigger: "blur" },
],
content: [ content: [
{ required: true, message: "需求内容不能为空", trigger: "blur" }, { required: true, message: "服务内容不能为空", trigger: "blur" },
], ],
categoryCode: [ categoryCode: [
{ required: true, message: "需求类型不能为空", trigger: "blur" }, { required: true, message: "服务类型不能为空", trigger: "blur" },
], ],
wantServiceTime: [ wantServiceTime: [
{ required: true, message: "服务时间不能为空", trigger: "blur" }, { required: true, message: "服务时间不能为空", trigger: "blur" },
], ],
demandUserName: [ demandUserName: [
{ required: true, message: "需求人不能为空", trigger: "blur" }, { required: true, message: "服务人不能为空", trigger: "blur" },
], ],
demandUserMobile: [ demandUserMobile: [
{ required: true, message: "联系电话不能为空", trigger: "blur" }, { required: true, message: "联系电话不能为空", trigger: "blur" },
@ -325,6 +352,7 @@ export default {
async mounted () { async mounted () {
const { user } = this.$store.state const { user } = this.$store.state
this.agencyId = user.agencyId this.agencyId = user.agencyId
this.getCategoryList();
this.getDemandOptions(); this.getDemandOptions();
// this.formData = { ...this.formDataTemp } // this.formData = { ...this.formDataTemp }
this.initMap() this.initMap()
@ -343,11 +371,55 @@ export default {
this.formData.demandUserId = this.demandUserId this.formData.demandUserId = this.demandUserId
} }
}, },
methods: { methods: {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data)
//
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg)
}
},
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryId = this.selCateObj.id
},
//
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory
}
}
}
return arr
},
async getDemandOptions () { async getDemandOptions () {
const url = "/heart/icresidemanddict/demandoption" const url = "/heart/icresidemanddict/demandoption"
let params = {} let params = {}
@ -404,6 +476,7 @@ export default {
this.formData.categoryCode = val[1]; this.formData.categoryCode = val[1];
} }
}, },
handleServiceChange (type, val) { handleServiceChange (type, val) {
if (val === "social_org") { if (val === "social_org") {
if (type === "add") this.getServiceuserList(val, "add_demand"); if (type === "add") this.getServiceuserList(val, "add_demand");

79
src/views/modules/shequzhili/event/cpts/process-form-project.vue

@ -5,6 +5,18 @@
:model="formData" :model="formData"
:rules="dataRule" :rules="dataRule"
label-width="100px"> label-width="100px">
<el-form-item label="事件分类"
label-width="150px"
prop="categoryList">
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</el-form-item>
<el-form-item label="项目标题" <el-form-item label="项目标题"
prop="title" prop="title"
label-width="150px" label-width="150px"
@ -175,7 +187,7 @@ import { isCard } from "@/utils/validate";
let loading; // let loading; //
function iniFmData () { function iniFmData () {
return { return {
operationType: '1',//[0: 1: 1:] operationType: '1',//[0: 1: 2:]
publicReply: '',// 1000 publicReply: '',// 1000
internalRemark: '',// 1000 internalRemark: '',// 1000
gridId: '',// gridId: '',//
@ -186,6 +198,8 @@ function iniFmData () {
categoryList: [],// categoryList: [],//
tagList: [],// tagList: [],//
internalFile: [],// internalFile: [],//
title: '',// title: '',//
@ -211,6 +225,16 @@ export default {
visibleTagPanel: false, visibleTagPanel: false,
selectedTagData: [], selectedTagData: [],
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
formData: iniFmData(), formData: iniFmData(),
formDataTemp: { formDataTemp: {
@ -254,6 +278,9 @@ export default {
dataRule () { dataRule () {
return { return {
categoryList: [
{ required: true, message: "请填写事件分类", trigger: "blur" },
],
title: [ title: [
{ required: true, message: "标题不能为空", trigger: "blur" }, { required: true, message: "标题不能为空", trigger: "blur" },
], ],
@ -329,6 +356,7 @@ export default {
async mounted () { async mounted () {
const { user } = this.$store.state const { user } = this.$store.state
this.agencyId = user.agencyId this.agencyId = user.agencyId
this.getCategoryList();
this.loadGrid(); this.loadGrid();
this.getMyDepartmentList(); this.getMyDepartmentList();
this.getAssistanceUnitList(); this.getAssistanceUnitList();
@ -342,6 +370,52 @@ export default {
}, },
methods: { methods: {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data)
//
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg)
}
},
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryList = []
this.formData.categoryList.push(this.selCateObj)
},
//
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory
}
}
}
return arr
},
async loadGrid () { async loadGrid () {
const url = "/gov/org/customergrid/gridoption" const url = "/gov/org/customergrid/gridoption"
@ -396,7 +470,7 @@ export default {
const url = "/gov/issue/issueprojecttagdict/list"; const url = "/gov/issue/issueprojecttagdict/list";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
// categoryList: this.projectCate,
}); });
if (code === 0) { if (code === 0) {
@ -409,7 +483,6 @@ export default {
} }
}, },
handleTagChange (val) { handleTagChange (val) {
console.log(val); console.log(val);
}, },

91
src/views/modules/shequzhili/event/cpts/process-form-replay.vue

@ -6,6 +6,18 @@
:model="formData" :model="formData"
:rules="dataRule" :rules="dataRule"
class="form"> class="form">
<el-form-item label="事件分类"
label-width="150px"
prop="categoryList">
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</el-form-item>
<el-form-item label="回复内容" <el-form-item label="回复内容"
prop="content" prop="content"
label-width="150px" label-width="150px"
@ -46,7 +58,7 @@ export default {
return { return {
btnDisable: false, btnDisable: false,
formData: { formData: {
operationType: '0',//[0: 1: 1:] operationType: '0',//[0: 1: 2:]
content: '', content: '',
status: '' status: ''
}, },
@ -54,7 +66,18 @@ export default {
status: false, status: false,
okflag: false, okflag: false,
eventDetailCopy: {} eventDetailCopy: {},
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
}; };
}, },
@ -84,13 +107,68 @@ export default {
watch: {}, watch: {},
async mounted () { async mounted () {
this.getCategoryList()
if (this.eventId) { if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCategoryArray = []
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId)
this.selCategoryArray.push(this.eventDetailCopy.categoryId)
this.selCateObj = {
name: this.eventDetailCopy.categoryName,
id: this.eventDetailCopy.categoryId
}
}
} }
}, },
methods: { methods: {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data)
//
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg)
}
},
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
},
//
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory
}
}
}
return arr
},
async getReplayInfo () { async getReplayInfo () {
this.okflag = false this.okflag = false
this.$refs["ref_form1"].validate((valid, messageObj) => { this.$refs["ref_form1"].validate((valid, messageObj) => {
@ -98,11 +176,20 @@ export default {
app.util.validateRule(messageObj); app.util.validateRule(messageObj);
} else { } else {
debugger
if (this.status) { if (this.status) {
if (!this.selCateObj || !this.selCateObj.id) {
this.$message.info("请填写事件分类");
return false
}
this.formData.status = 'closed_case' this.formData.status = 'closed_case'
} else { } else {
this.formData.status = 'processing' this.formData.status = 'processing'
} }
this.formData.categoryId = this.selCateObj.id
this.formData.categoryList = []
this.formData.categoryList.push(this.selCateObj)
this.okflag = true this.okflag = true
} }

116
src/views/modules/shequzhili/event/cpts/process-form.vue

@ -6,26 +6,14 @@
:inline="false" :inline="false"
:rules="dataRule" :rules="dataRule"
class="form"> class="form">
<el-form-item label="分类"
label-width="150px"
prop="categoryList">
<el-cascader class="cell-width-2"
ref="myCascader"
:disabled="operationType==='2'"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</el-form-item>
<el-form-item label="处理方式" <el-form-item label="处理方式"
label-width="150px" label-width="150px"
prop="operationType"> prop="operationType">
<el-radio-group v-model="operationType"> <el-radio-group v-model="operationType">
<el-radio label="0">回复</el-radio> <el-radio label="0">回复</el-radio>
<el-radio label="1">立项</el-radio> <el-radio label="1">立项</el-radio>
<el-radio label="2">需求</el-radio> <el-radio label="2">转服务</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
@ -70,24 +58,20 @@ export default {
data () { data () {
return { return {
casOptions: [], casOptions: [],
iscascaderShow: 0, iscascaderShow: 0,
selCategoryArray: [ selCategoryArray: [],
],
selCateObj: {}, selCateObj: {},
optionProps: { optionProps: {
multiple: false, multiple: false,
value: 'id', value: 'id',
label: 'name', label: 'name',
children: 'subCategory', children: 'subCategory',
}, },
operationType: '0', operationType: '',
categoryList: [],
replayInfo: {}, replayInfo: {},
demand: {}, demand: {},
project: {}, project: {},
@ -105,9 +89,7 @@ export default {
computed: { computed: {
dataRule () { dataRule () {
return { return {
categoryList: [
{ required: true, message: "分类不能为空", trigger: "blur" },
],
operationType: [ operationType: [
{ required: true, message: "处理方式不能为空", trigger: "blur" }, { required: true, message: "处理方式不能为空", trigger: "blur" },
], ],
@ -149,117 +131,39 @@ export default {
async mounted () { async mounted () {
const { user } = this.$store.state const { user } = this.$store.state
this.agencyId = user.agencyId this.agencyId = user.agencyId
await this.getCategoryList()
if (this.eventId) { if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCategoryArray = []
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId)
this.selCategoryArray.push(this.eventDetailCopy.categoryId)
this.selCateObj = {
name: this.eventDetailCopy.categoryName,
id: this.eventDetailCopy.categoryId
}
}
}
}
}, },
methods: { methods: {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data)
//
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg)
}
},
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
},
//
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory
}
}
}
return arr
},
async getProcessInfo () { async getProcessInfo () {
this.okflag = false this.okflag = false
if (this.selCategoryArray.length === 0) { // this.categoryList = []
this.$message({
type: "error",
message: "请选择分类",
});
this.okflag = false
return false
}
this.categoryList = []
this.categoryList.push(this.selCategoryArray[1])
// this.categoryList.push(this.selCategoryArray[1])
if (this.operationType === '0') { if (this.operationType === '0') {
this.$refs.ref_process_form_replay.getReplayInfo() this.$refs.ref_process_form_replay.getReplayInfo()
if (this.$refs.ref_process_form_replay.okflag) { if (this.$refs.ref_process_form_replay.okflag) {
this.replayInfo = this.$refs.ref_process_form_replay.formData this.replayInfo = this.$refs.ref_process_form_replay.formData
this.replayInfo.categoryId = this.categoryList[0]
this.replayInfo.categoryList = this.categoryList
this.okflag = true this.okflag = true
} else { } else {
return false return false
} }
} else if (this.operationType === '1') { } else if (this.operationType === '1') {
this.$refs.ref_process_form_project.getProjectInfo() this.$refs.ref_process_form_project.getProjectInfo()
if (this.$refs.ref_process_form_project.okflag) { if (this.$refs.ref_process_form_project.okflag) {
this.project = this.$refs.ref_process_form_project.formData this.project = this.$refs.ref_process_form_project.formData
this.project.categoryList = []
this.project.categoryList.push(this.selCateObj)
// //
this.okflag = true this.okflag = true

1
src/views/modules/visual/communityGovern/shijianchuli/event-info.vue

@ -146,6 +146,7 @@
:userTag="'(报事人)'" :userTag="'(报事人)'"
:singleList="yanPan.singleList" :singleList="yanPan.singleList"
:hasEvent="yanPan.hasEvent" :hasEvent="yanPan.hasEvent"
:bcLimit="yanPan.resiReportEventCount"
@user="toUserInfo" /> @user="toUserInfo" />
<div v-else <div v-else
class="m-hint"> class="m-hint">

38
src/views/modules/visual/cpts/analyse.vue

@ -19,7 +19,26 @@
</div> </div>
<div class="analys-col"> <div class="analys-col">
<div class="analys-person"> <div v-if="bcLimit>31||bcLimit==31"
class="analys-person_red">
<div class="personal-name"
@click="handleMidderUser()">{{userName}}</div>
<div class="personal-tips">{{userTag}}</div>
</div>
<div v-else-if="bcLimit<31&&(bcLimit>21||bcLimit==21)"
class="analys-person_orange">
<div class="personal-name"
@click="handleMidderUser()">{{userName}}</div>
<div class="personal-tips">{{userTag}}</div>
</div>
<div v-else-if="bcLimit<21&&(bcLimit>11||bcLimit==11)"
class="analys-person_yellow">
<div class="personal-name"
@click="handleMidderUser()">{{userName}}</div>
<div class="personal-tips">{{userTag}}</div>
</div>
<div v-else
class="analys-person">
<div class="personal-name" <div class="personal-name"
@click="handleMidderUser()">{{userName}}</div> @click="handleMidderUser()">{{userName}}</div>
<div class="personal-tips">{{userTag}}</div> <div class="personal-tips">{{userTag}}</div>
@ -270,6 +289,10 @@ export default {
type: Boolean, type: Boolean,
default: false default: false
}, },
bcLimit: { //
type: Number,
default: 1
},
singleList: Array, // singleList: Array, //
}, },
@ -396,6 +419,19 @@ export default {
} }
} }
.analys-person-orange {
background: url("../../../../assets/img/shuju/measure/zhuhu_orange.png")
no-repeat center;
}
.analys-person-yellow {
background: url("../../../../assets/img/shuju/measure/zhuhu_yellow.png")
no-repeat center;
}
.analys-person-red {
background: url("../../../../assets/img/shuju/measure/zhuhu_red.png")
no-repeat center;
}
.analys-cate { .analys-cate {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

Loading…
Cancel
Save