Browse Source

Merge branch 'dev-detail-adjust0919' into dev-fangyi0926

V1.0
jiangyy 3 years ago
parent
commit
8712de1de5
  1. BIN
      src/assets/img/shuju/grid/IS_KC.png
  2. BIN
      src/assets/img/shuju/grid/sr_gc.png
  3. 6
      src/router/index.js
  4. 280
      src/views/modules/base/epidemic/natFocus/natFocusAdd.vue
  5. 2
      src/views/modules/base/epidemic/natInfo/noNatDetail.vue
  6. 8
      src/views/modules/base/epidemic/vaccin.vue
  7. 420
      src/views/modules/base/epidemic/vaccinForm.vue
  8. 4
      src/views/modules/communityService/ninePlaces/places/placesDetail.vue
  9. 12
      src/views/modules/communityService/worklog/workLog.vue
  10. 77
      src/views/modules/plugins/rent/rentcontractinfo-add-or-update.vue
  11. 17
      src/views/modules/plugins/rent/rentcontractinfo-look-or-check.vue
  12. 3
      src/views/modules/plugins/rent/upload-image.vue
  13. 24
      src/views/modules/sys/icvaccineprarmeter-add-or-update.vue
  14. 8
      src/views/modules/visual/command/cpts/map.vue
  15. 4
      src/views/modules/visual/command/index.vue
  16. 427
      src/views/modules/worklog/icworklog.vue

BIN
src/assets/img/shuju/grid/IS_KC.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
src/assets/img/shuju/grid/sr_gc.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

6
src/router/index.js

@ -112,20 +112,20 @@ function cookApiDataItem(item) {
function n2one(v) {
let ret = [];
for (let i = 0; i < v.length; i++) {
console.log("xxxxx", v[i]);
// console.log("xxxxx", v[i]);
ret.push(v[i]);
if (Array.isArray(v[i].children) && v[i].children.length > 0) {
ret.push(...n2one(v[i].children));
}
}
console.log("aaaa", ret);
// console.log("aaaa", ret);
return ret;
}
let allChildrenUrl = n2one(item.children)
.filter((i) => i.url != "" && i.showFlag == 1)
.map((i) => i.url);
console.log("))))))))))))", allChildrenUrl);
// console.log("))))))))))))", allChildrenUrl);
if (item.children.length > 0) {
if (item.url == "" || !allChildrenUrl.find((i) => i.url == item.url)) {

280
src/views/modules/base/epidemic/natFocus/natFocusAdd.vue

@ -159,15 +159,16 @@
:inline="true"
:model="formDataSearch"
ref="ref_formSearch"
:label-width="'90px'"
label-width="90px"
>
<el-form-item label="所属网格" label-width="80px">
<el-form-item label="所属网格">
<el-select
class="item_width_3"
v-model.trim="formDataSearch.gridId"
placeholder="请选择"
size="mini"
clearable
@change="handleChangeGrid"
>
<el-option
v-for="item in gridList"
@ -178,6 +179,115 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属小区" prop="neighborId">
<el-select
v-model.trim="formDataSearch.neighborId"
placeholder="请选择小区"
size="small"
clearable
class="resi-cell-select"
@clear="handleClearVillage"
@change="handleChangeV"
>
<el-option
v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
v-model.trim="formDataSearch.buildingId"
placeholder="楼号"
size="small"
clearable
style="width: 120px"
class="resi-cell-select"
@clear="handleClearBuild"
@change="handleChangeB"
>
<el-option
v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
v-model.trim="formDataSearch.unitId"
placeholder="单元"
size="small"
clearable
style="width: 120px"
class="resi-cell-select"
@click="handleClearDan"
@change="handleChangeD"
>
<el-option
v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-select
v-model.trim="formDataSearch.houseId"
placeholder="房号"
size="small"
clearable
style="width: 120px"
class="resi-cell-select"
>
<el-option
v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input
v-model="formDataSearch.name"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入姓名"
>
</el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input
v-model="formDataSearch.mobile"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入手机号"
>
</el-input>
</el-form-item>
<el-form-item label="证件号" prop="idCard">
<el-input
v-model="formDataSearch.idCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证号或护照号"
>
</el-input>
</el-form-item>
<el-form-item label="年龄" prop="age">
<inputRange
v-model="formDataSearch.age"
type="num"
@change="handleAgeChange"
/>
</el-form-item>
<el-form-item label="核酸检测次数小于" label-width="150px">
<el-input-number
class="item_width_3"
@ -190,7 +300,6 @@
</el-form-item>
<el-form-item
label="检测时间"
label-width="80px"
prop="startTime"
>
<el-date-picker
@ -323,7 +432,7 @@
:inline="true"
:model="formData2"
ref="ref_form2"
:label-width="'90px'"
label-width="90px"
:rules="dataRule1"
>
<el-form-item
@ -441,6 +550,7 @@
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
import { mapGetters } from "vuex";
import inputRange from "@/views/components/rangeInput.vue";
let loading; //
export default {
@ -458,8 +568,23 @@ export default {
startDate: "",
endDate: "",
attentionType: 2,
neighborId: "",
buildingId: "",
unitId: "",
houseId: "",
name: "",
mobile: "",
idCard: "",
age: {},
startBirthDay: "",
endBirthDay: "",
},
timeRange: [],
optionsV: [],
optionsB: [],
optionsH: [],
optionsD: [],
optionsG: [],
formData1: {
attentionType: 2,
@ -497,7 +622,7 @@ export default {
};
},
components: {},
components: { inputRange },
async mounted() {
const { user } = this.$store.state;
@ -649,6 +774,79 @@ export default {
handleClick() {},
handleAgeChange(val) {
console.log("val----age---", val);
if (val.start) {
const e = this.computedBirth(val.start);
this.formDataSearch.endBirthDay = e;
} else {
this.formDataSearch.endBirthDay = "";
}
if (val.end) {
const s = this.computedBirth(val.end);
this.formDataSearch.startBirthDay = s;
} else {
this.formDataSearch.startBirthDay = "";
}
},
computedBirth(age) {
let now = new Date();
let nowYear = now.getFullYear();
let nowMonth = now.getMonth() + 1;
let nowDay = now.getDate(); // daymonthmonthyearyear
let subYear = nowYear - age;
if (nowMonth < 10) {
nowMonth = "0" + nowMonth;
}
if (nowDay < 10) {
nowDay = "0" + nowDay;
}
console.log(subYear + "-" + nowMonth + "-" + nowDay);
return subYear + "-" + nowMonth + "-" + nowDay;
},
handleClearVillage() {
this.formDataSearch.buildingId = "";
this.formDataSearch.unitId = "";
this.formDataSearch.houseId = "";
},
handleClearBuild() {
this.formDataSearch.buildingId = "";
this.formDataSearch.unitId = "";
this.formDataSearch.houseId = "";
},
handleClearDan() {
this.formDataSearch.unitId = "";
this.formDataSearch.houseId = "";
},
handleChangeGrid(val) {
console.log("val", val);
this.formDataSearch.neighborId = "";
this.formDataSearch.buildingId = "";
this.formDataSearch.unitId = "";
this.formDataSearch.houseId = "";
this.getValiheList();
},
handleChangeV(val) {
console.log("val", val);
this.formDataSearch.buildingId = "";
this.formDataSearch.unitId = "";
this.formDataSearch.houseId = "";
this.getBuildList();
},
handleChangeB(val) {
console.log("val", val);
this.formDataSearch.unitId = "";
this.formDataSearch.houseId = "";
this.getUniList();
},
handleChangeD(val) {
console.log("val", val);
this.formDataSearch.houseId = "";
this.getHouseList();
},
async loadGrid() {
const url = "/gov/org/customergrid/gridoption";
@ -664,6 +862,78 @@ export default {
this.$message.error(msg);
}
},
getValiheList() {
const { user } = this.$store.state;
this.$http
.post("/gov/org/icneighborhood/neighborhoodoption", {
gridId: this.formDataSearch.gridId,
agencyId: "",
// agencyId: user.agencyId
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
console.log("获取查询详情成功", res.data);
this.optionsV = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getBuildList() {
this.$http
.post("/gov/org/icbuilding/buildingoption", {
neighborHoodId: this.formDataSearch.neighborId,
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
console.log("获取查询详情成功", res.data);
this.optionsB = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getUniList() {
this.$http
.post("/gov/org/icbuildingunit/unitoption", {
buildingId: this.formDataSearch.buildingId,
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
console.log("获取查询详情成功", res.data);
this.optionsD = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
getHouseList() {
this.$http
.post("/gov/org/ichouse/houseoption", {
unitId: this.formDataSearch.unitId,
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
console.log("获取查询详情成功", res.data);
this.optionsH = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
handleComfirm() {
if (this.activeName === "first") {
this.$refs["ref_form1"].validate((valid, messageObj) => {

2
src/views/modules/base/epidemic/natInfo/noNatDetail.vue

@ -25,7 +25,7 @@
</div>
<div class="info-prop">
<span class="info-title-2">检测结果</span>
<span>{{ formData.natResult==='0'?'阴性':'阳性' }}</span>
<span>{{ formData.natResult==='0'?'阴性':formData.natResult==='1'?'阳性':'--' }}</span>
</div>
</div>

8
src/views/modules/base/epidemic/vaccin.vue

@ -100,7 +100,8 @@
class="diy-button--export"
size="small"
@click="handleExportModule">下载模板</el-button>
<el-upload :headers="$getElUploadHeaders()" ref="upload"
<el-upload :headers="$getElUploadHeaders()"
ref="upload"
:multiple="false"
:show-file-list="false"
:before-upload="beforeUpload"
@ -243,8 +244,7 @@
class="dialog-h"
@closed="diaClose">
<vaccinForm ref="ref_form"
@dialogCancle="diaClose"
@dialogOk="addFormOk"></vaccinForm>
@dialogCancle="diaClose"></vaccinForm>
</el-dialog>
<el-dialog :visible.sync="addFormShow"
:close-on-click-modal="false"
@ -409,7 +409,7 @@ export default {
this.formShow = true;
const row1 = { ...row }
let row2 = await this.getInfo(row1);
this.$refs.ref_form.initForm("detail", row2);
this.$refs.ref_form.initForm(row2);
},
handleAdd () {

420
src/views/modules/base/epidemic/vaccinForm.vue

@ -1,99 +1,47 @@
<template>
<div class="epidemic-form">
<div>
<div class="dialog-h-content scroll-h">
<div v-if="initLoading"
class="m-row">
<div class="m-info">
<div class="info-prop">
<span class="info-title-2">姓名</span>
<span>{{ formData.name||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">手机号</span>
<span>{{ formData.mobile||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">证件号</span>
<span>{{ formData.idCard||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">接种时间</span>
<span>{{ formData.inoculateTime||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">接种地点</span>
<span>{{ formData.inoculateAddress||'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">疫苗厂家</span>
<span>{{ formData.manufacturer||'--' }}</span>
</div>
</div>
</div>
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType==='detail'"
class="form">
<el-form-item label="姓名"
prop="name"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
placeholder="请输入姓名"
clearable
:disabled="isFromResi"
v-model="formData.name">
</el-input>
</el-form-item>
<el-form-item label="手机号"
prop="mobile"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
placeholder="请输入手机号"
clearable
:disabled="isFromResi"
v-model="formData.mobile">
</el-input>
</el-form-item>
<el-form-item label="证件号"
prop="idCard"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
placeholder="请输入身份证号或护照号"
clearable
:disabled="isFromResi"
v-model="formData.idCard">
</el-input>
</el-form-item>
<el-form-item label="接种时间"
style="display: block"
prop="inoculateTime"
label-width="150px">
<el-date-picker class="item_width_2"
v-model="formData.inoculateTime"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
type="datetime"
:picker-options="pickerOptions"
clearable
placeholder="选择时间">
</el-date-picker>
</el-form-item>
<el-form-item label="接种地点"
prop="inoculateAddress"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入检测地点"
clearable
v-model="formData.inoculateAddress">
</el-input>
</el-form-item>
<el-form-item label="疫苗厂家"
prop="manufacturer"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入检测地点"
clearable
v-model="formData.manufacturer" />
</el-form-item>
</el-form>
</div>
<div class="form_div_btn">
<div class="div-btn">
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button v-if="formType != 'detail'"
size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
@click="handleCancle"> </el-button>
</div>
</div>
</template>
@ -108,23 +56,7 @@ let loading // 加载动画
export default {
data () {
return {
formType: 'add', // addeditdetail
hideUploadEdit: false, // ''
limitNum: 1,
enterType: '1',//1 2
isFromResi: false,//
gridList: [],
personList: [],
pickerOptions: { //
disabledDate (time) {
return time.getTime() > (Date.now())
}
},
btnDisable: false,
icNatId: '',
initLoading: false,
formData: {
agencyId: '',//Id
userId: '',//idicResiUserId
@ -137,11 +69,7 @@ export default {
manufacturer: ''
},
fileList: [],
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile',
dialogImageUrl: '',
dialogVisible: false,
imgLoading: false,
}
},
@ -149,8 +77,7 @@ export default {
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
//
// await this.loadGrid()
},
methods: {
@ -158,79 +85,16 @@ export default {
this.formData.content = ''
},
async initForm (type, row) {
// this.startLoading()
this.formData.agencyId = this.agencyId
async initForm (row) {
// this.$refs['ref_form'].resetFields();
this.isFromResi = false
this.enterType = '1'
this.formType = type
this.formData = { ...row }
// this.endLoading()
console.log('formData----', this.formData)
},
handleChangeEnterType (value) {
this.formData.name = ''
this.formData.mobile = ''
this.formData.idCard = ''
this.formData.gridId = ''
this.formData.userId = ''
this.$refs['ref_form'].resetFields();
if (value === '2') {
this.isFromResi = true
} else {
this.isFromResi = false
}
this.initLoading = true
},
async loadGrid () {
const url = "/gov/org/customergrid/gridoption"
let params = {
agencyId: this.agencyId
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.gridList = data
} else {
this.$message.error(msg)
}
},
async handleSelGrid (value) {
const url = "/epmetuser/icresiuser/demandusers"
let params = {
agencyId: this.agencyId,
gridId: value
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.personList = data
} else {
this.$message.error(msg)
}
},
async handleSelPerson (personItem) {
this.formData.userId = personItem.demandUserId
this.formData.name = personItem.demandUserName
this.formData.mobile = personItem.demandUserMobile
this.formData.idCard = personItem.idCard
},
async loadFormData () {
@ -284,164 +148,15 @@ export default {
}
},
handleComfirm () {
this.$refs['ref_form'].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj)
} else {
this.addNat()
}
})
},
async addNat () {
// if (this.imgLoading) {
// this.$message({
// type: 'warning',
// message: ''
// })
// return false;
// }
const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //
if (regPhone.test(this.formData.mobile) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的手机号码'
})
return false;
}
const regCard = /(^\d{15}$)|(^\d{17}(\d|X)$)|(^[a-zA-Z0-9]{8,9}$)/; //1518151817X
if (regCard.test(this.formData.idCard) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的证件号码'
})
return false;
}
if (this.formData.isSelChannel) {
if (!this.formData.content) {
this.$message({
type: 'warning',
message: '请填写通知内容'
})
return false;
} else {
this.formData.channel = ['0']
}
} else {
this.formData.channel = []
this.formData.content = ''
}
this.btnDisable = true
setTimeout(() => {
this.btnDisable = false
}, 5000)
let url = ''
if (this.formType === 'add') {
url = '/epmetuser/icNat/add'
// url = "http://yapi.elinkservice.cn/mock/102/epmetuser/icNat/add"
this.formData.icNatId = ''
} else {
url = '/epmetuser/icNat/edit'
// url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icNat/edit"
}
const { data, code, msg } = await requestPost(url, this.formData)
if (code === 0) {
this.$message({
type: 'success',
message: '操作成功'
})
this.resetData()
this.$emit('dialogOk')
this.btnDisable = false
} else {
this.btnDisable = false
this.$message.error(msg)
}
},
handleCancle () {
this.resetData()
// this.resetData()
this.$emit('dialogCancle')
},
handleRemove (file, fileList) {
this.hideUploadEdit = fileList.length >= this.limitNum;
this.formData.fileName = ''
this.formData.attachmentUrl = ''
this.formData.attachmentType = ''
this.fileList = []
},
handlePictureCardPreview (file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handleEditChange (file, fileList) {
this.hideUploadEdit = fileList.length >= this.limitNum;
},
beforeUpload (file) {
const array = file.name.split('.')
const extension = array[array.length - 1]
// const isLt1M = (file.size / 1024 / 1024) < 5
if (extension !== 'jpg'
&& extension !== 'png'
&& extension !== 'gif'
) {
this.$message.error('只能上传jpg、png、gif文件!')
return false
} else {
this.btnDisable = true
}
// if (!isLt1M) {
// this.$message.error(' 5MB!')
// }
// return isLt1M
},
handleFileSuccess (res, file) {
if (res.code === 0 && res.msg === 'success') {
const array = file.name.split('.')
const fileType = array[array.length - 1]
this.formData.fileName = file.name
this.formData.attachmentUrl = res.data.url
this.formData.attachmentType = 'image'
file.attachmentFormat = fileType
file.attachmentSize = file.size
} else {
this.$message.error(res.msg)
}
this.btnDisable = false
},
resetData () {
this.icNatId = ''
this.fileList = []
this.hideUploadEdit = false
this.formData = {
icNatId: '',
@ -481,40 +196,6 @@ export default {
}
},
computed: {
dataRule () {
return {
name: [
{ required: true, message: '姓名不能为空', trigger: 'blur' }
],
idCard: [
{ required: true, message: '证件号不能为空', trigger: 'blur' }
],
mobile: [
{ required: true, message: '手机号不能为空', trigger: 'blur' },
],
natTime: [
{ required: true, message: '检测时间不能为空', trigger: 'blur' },
],
natAddress: [
{ required: false },
],
natResult: [
{ required: true, message: '检测结果不能为空', trigger: 'blur' },
],
isSelChannel: [
{ required: false },
],
channel: [
{ required: false },
],
content: [
{ required: false },
],
}
},
},
props: {
@ -530,19 +211,8 @@ export default {
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/epidemic.scss";
</style>
<style lang='scss'>
//
.hide .el-upload--picture-card {
display: none;
}
// /
.el-upload-list__item {
transition: none !important;
}
<style lang="scss" scoped>
@import "@/assets/scss/modules/management/detail-main.scss";
</style>

4
src/views/modules/communityService/ninePlaces/places/placesDetail.vue

@ -134,11 +134,7 @@ export default {
}
},
handleCancle () {
this.$emit('diaDetailClose')
},

12
src/views/modules/communityService/worklog/workLog.vue

@ -10,6 +10,7 @@
prop="gridId">
<el-select v-model="workLog.gridId"
filterable
size="small"
placeholder="请选择"
clearable>
<el-option v-for="item in optionsG"
@ -23,6 +24,7 @@
prop="serviceType">
<el-select v-model="workLog.serviceType"
filterable
size="small"
placeholder="请选择"
clearable>
<el-option v-for="item in serviceTypeList"
@ -153,35 +155,35 @@
align="center"
label="申请人"
show-overflow-tooltip
max-width="100">
width="100">
</el-table-column>
<el-table-column prop="applicantAddress"
header-align="center"
show-overflow-tooltip
align="center"
label="住址"
width="80">
min-width="130">
</el-table-column>
<el-table-column prop="serviceContent"
header-align="center"
align="center"
show-overflow-tooltip
label="服务内容"
mix-width="230">
min-width="150">
</el-table-column>
<el-table-column prop="applicantMobile"
header-align="center"
align="center"
show-overflow-tooltip
label="联系电话"
width="100">
width="110">
</el-table-column>
<el-table-column prop="principalName"
header-align="center"
align="center"
show-overflow-tooltip
label="责任人"
width="130">
width="100">
</el-table-column>
<el-table-column prop="serviceTime"
header-align="center"

77
src/views/modules/plugins/rent/rentcontractinfo-add-or-update.vue

@ -286,11 +286,36 @@
</el-form-item>
<br/>
<el-form-item label="合同附件" prop="fileList" label-width="140px">
<el-form-item label="合同照片" prop="fileList" label-width="140px">
<template>
<upload-image :defaultFileList="dataForm.fileList" :limit="6" @change="onChangeFileList"></upload-image>
</template>
</el-form-item>
<el-form-item label="合同附件" label-width="140px">
<template>
<el-upload
class="upload-demo"
multiple
:action="uploadUrl"
:data="{ customerId: customerId }"
:limit="limit"
:headers="$getElUploadHeaders()"
:on-success="(res, file) => handleFlieSuccess(res, file)"
:on-error="(res, file) => handleFlieError(res, file)"
:on-remove="(res) => handleFlieRemove(res)"
:on-exceed="(res) => handleFlieExceed(res)"
:before-upload="(file) => beforeFlieUpload(file)"
:on-preview="handlePreview"
:file-list="dataForm.docList">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传合同文件</div>
</el-upload>
</template>
</el-form-item>
</el-form>
<template slot="footer">
<div class="resi-btns">
@ -355,7 +380,8 @@ export default {
idCardImgList: [],
unit: ''
}],
fileList: []
fileList: [],
docList: []
},
zzmmOptions: [
{ name: '党员', value: '党员' },
@ -391,7 +417,10 @@ export default {
buildingOptions: [],
unitOptions: [],
houseOptions: [],
agencyOptions: []
agencyOptions: [],
uploadUrl: `${window.SITE_CONFIG['apiURL']}/oss/file/uploadqrcodeV2`,
customerId: localStorage.getItem("customerId"),
limit: 3
}
},
computed: {
@ -537,6 +566,7 @@ export default {
unit: ''
}],
fileList: [],
docList: [],
agencyImgList: []
}
},
@ -866,6 +896,43 @@ export default {
this.editModeGetList()
}).catch(() => {})
},
handleFlieSuccess(res, file) {
if (res.code === 0 && res.msg === "success") {
let ob = {
fileType: '0',
fileUrl: file.response.data.url,
name: file.response.data.fileName
}
this.dataForm.docList.push(ob)
} else {
this.$message.error(res.msg)
}
},
handleFlieError(res, file) {
console.log(res)
},
handleFlieRemove(res) {
// console.log(JSON.stringify(res))
const delFile = res.fileUrl
this.dataForm.docList.forEach((item, key) => {
if (delFile == item.fileUrl) {
this.dataForm.docList.splice(key, 1)
}
})
},
handleFlieExceed(res) {
this.$message({
type: "warning",
message: `文件数量最多不超过${this.limit}`,
})
},
beforeFlieUpload(file) {
console.log(file)
},
handlePreview(file) {
window.open(file.fileUrl)
// console.log(JSON.stringify(file));
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
@ -932,7 +999,9 @@ export default {
}
</style>
<style lang="scss" scoped>
::v-deep .el-upload-list__item.is-success.focusing .el-icon-close-tip {
display: none !important;
}
.div_btn {
display: flex;
justify-content: flex-end;

17
src/views/modules/plugins/rent/rentcontractinfo-look-or-check.vue

@ -117,13 +117,17 @@
</el-form-item>
<br/>
<el-form-item label="合同附件" prop="fileList">
<el-form-item label="合同照片" prop="fileList">
<template>
<label v-for="(item,index) in dataForm.fileList" :key="index">
<img :src="item.fileUrl" @click="imgShow(item.fileUrl)" width="100" height="100" />
</label>
</template>
</el-form-item>
<el-form-item label="合同附件">
<label v-for="(item,index) in dataForm.docList" :key="index" @click="downFile(item.fileUrl)" class="file-l">{{ item.name }}</label>
</el-form-item>
<el-form-item label="审核原因" prop="reason" v-if="dataForm.flag === '1' && dataForm.state === '2'">
<el-input v-model="dataForm.reason" placeholder="审核原因" disabled></el-input>
</el-form-item>
@ -184,7 +188,8 @@ export default {
lesseeHouseAddress: '',
signDate: '',
startDate: '',
endDate: ''
endDate: '',
docList: [],
},
dataListLoading: false,
dialogVisible: false,
@ -346,6 +351,9 @@ export default {
})
}).catch(() => {})
},
downFile(fileUrl) {
window.open(fileUrl)
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
@ -376,6 +384,11 @@ export default {
margin-top: 20px;
text-align: center;
}
.file-l{
margin-right: 10px;
color: #3ebef7;
cursor: pointer;
}
</style>
<style lang="scss">
.rent {

3
src/views/modules/plugins/rent/upload-image.vue

@ -9,7 +9,8 @@
:on-error="(res, file) => handleImgError(res, file)"
:on-remove="(res) => handleImgRemove(res)"
:on-exceed="(res) => handleImgExceed(res)"
:before-upload="(file) => beforeImgUpload(file)">
:before-upload="(file) => beforeImgUpload(file)"
accept="image/jpg,image/jpeg,image/png">
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{file}">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">

24
src/views/modules/sys/icvaccineprarmeter-add-or-update.vue

@ -220,7 +220,8 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="dataForm.isVaccination === '0'" label="原因" label-width="150px">
<el-form-item label="原因" label-width="150px">
<!--<el-form-item v-if="dataForm.isVaccination === '0'" label="原因" label-width="150px">-->
<el-select class="item_width_2"
v-model.trim="dataForm.reason"
placeholder="请选择"
@ -337,6 +338,14 @@
return !this.dataForm.unitId
},
dataRule () {
var checkPhone = (rule, value, callback) => {
let moblie = /^1(3|4|5|6|7|8|9)\d{9}$/; let tel = /^(0[0-9]{2,3}\-)([2-9][0-9]{4,7})+(\-[0-9]{1,4})?$/
if (!moblie.test(this.dataForm.mobile) && !tel.test(this.dataForm.mobile)) {
return callback(new Error('请输入正确的手机号或座机号!'))
} else {
callback()
}
}
return {
customerId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
@ -384,7 +393,8 @@
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
mobile: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
{ required: true, message: this.$t('validate.required'), trigger: 'blur' },
{ validator: checkPhone, trigger: 'blur' }
],
idCard: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
@ -728,16 +738,6 @@
setTimeout(() => {
this.btnDisable = false;
}, 10000);
//
const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/;
if (regPhone.test(this.dataForm.mobile) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的手机号码'
})
return false;
}
if(this.dataForm.isVaccination === '1'){
if(this.dataForm.firstVacTime === ''){
this.$message({

8
src/views/modules/visual/command/cpts/map.vue

@ -516,6 +516,7 @@ export default {
iniMapDot(scene) {
const { darkStyle, lightStyle, dotIcoList, dotData } = this;
console.log('--------------------------图标', dotIcoList)
Object.keys(dotIcoList).forEach((k) => {
scene.addImage(k, dotIcoList[k]);
});
@ -531,10 +532,9 @@ export default {
strokeOpacity: 0.1,
stroke: "#000",
});
scene.addLayer(dotBgLayer);
dotLayer = new PointLayer({
zIndex: 21,
zIndex: 20,
})
.source(dotData)
.shape("categoryKey", (k) => k)
@ -543,6 +543,8 @@ export default {
offsets: [0, 0],
layerType: "fillImage",
});
scene.addLayer(dotBgLayer);
scene.addLayer(dotLayer);
dotBgLayer.on("click", (e) => {
@ -567,7 +569,7 @@ export default {
});
dotLayer2 = new PointLayer({
zIndex: 31,
zIndex: 30,
})
.source(dotData)
.shape("categoryKey", (k) => k + "2")

4
src/views/modules/visual/command/index.vue

@ -334,7 +334,7 @@ export default {
yjdw: require("@/assets/img/shuju/command/ico/yjdw.png"),
sr_gy: require("@/assets/img/shuju/command/ico/sr_gy.png"),
sr_gc: require("@/assets/img/shuju/command/ico/sr_gc.png"),
sr_gc: require("@/assets/img/shuju/grid/sr_gc.png"),
whdw: require("@/assets/img/shuju/command/ico/whdw.png"),
sr_ggld: require("@/assets/img/shuju/command/ico/sr_ggld.png"),
lwh: require("@/assets/img/shuju/command/ico/lwh.png"),
@ -424,7 +424,7 @@ export default {
IS_DB: require("@/assets/img/shuju/command/ico3/IS_DB.png"),
IS_MB: require("@/assets/img/shuju/command/ico3/IS_MB.png"),
anzhibangjiao: require("@/assets/img/shuju/command/ico3/anzhibangjiao.png"),
IS_KC: require("@/assets/img/shuju/command/ico3/IS_KC.png"),
IS_KC: require("@/assets/img/shuju/grid/IS_KC.png"),
IS_XFRY: require("@/assets/img/shuju/command/ico3/IS_XFRY.png"),
IS_SD: require("@/assets/img/shuju/command/ico3/IS_SD.png"),
IS_SN: require("@/assets/img/shuju/command/ico3/IS_SN.png"),

427
src/views/modules/worklog/icworklog.vue

@ -1,130 +1,176 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<el-card shadow="never"
class="aui-card--fill">
<div class="mod-__icWorkLog} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item prop="gridId" label="所属组织">
<div class="resi-cell-value">
<el-cascader class="customer_cascader"
ref="myCascader"
clearable
v-model="agencyIdArray"
:options="orgOptions"
:props="orgOptionProps"
:show-all-levels="false"
@change="handleChangeAgency"></el-cascader>
</div>
</el-form-item>
<el-form-item label="日志类型"
prop="logType">
<el-select v-model="dataForm.logType"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in logTypeArr"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="网格员"
prop="createdUser">
<el-input v-model="dataForm.createdUser"
size="small"
clearable
placeholder="请输入网格员姓名">
</el-input>
</el-form-item>
<el-form-item label="联系电话"
prop="createdUser">
<el-input v-model="dataForm.mobile"
size="small"
clearable
placeholder="请输入联系电话">
</el-input>
</el-form-item>
<el-form-item label="日志时间" prop="startTime">
<el-date-picker v-model="dataForm.startTime"
type="date"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"
style="width:200px">
</el-date-picker>
</el-form-item>
<el-form-item label="至" prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"
style="width:200px">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" class="diy-button--search" @click="getDataList()">{{ $t('query') }}</el-button>
<el-button style="margin-left:10px"
<el-card ref="searchCard"
class="search-card">
<el-form :inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()">
<el-form-item prop="gridId"
label="所属组织">
<div class="resi-cell-value">
<el-cascader class="customer_cascader"
size="small"
ref="myCascader"
clearable
v-model="agencyIdArray"
:options="orgOptions"
:props="orgOptionProps"
:show-all-levels="false"
@change="handleChangeAgency"></el-cascader>
</div>
</el-form-item>
<el-form-item label="日志类型"
prop="logType">
<el-select v-model="dataForm.logType"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in logTypeArr"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="网格员"
prop="createdUser">
<el-input v-model="dataForm.createdUser"
size="small"
type="primary"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</el-form-item>
<!-- <el-button style="margin-left:10px"
clearable
placeholder="请输入网格员姓名">
</el-input>
</el-form-item>
<el-form-item label="联系电话"
prop="createdUser">
<el-input v-model="dataForm.mobile"
size="small"
clearable
placeholder="请输入联系电话">
</el-input>
</el-form-item>
<el-form-item label="日志时间"
prop="startTime">
<el-date-picker v-model="dataForm.startTime"
type="date"
size="small"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"
style="width:200px">
</el-date-picker>
</el-form-item>
<el-form-item label="至"
prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
size="small"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"
style="width:200px">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary"
size="small"
class="diy-button--search"
@click="getDataList()">{{ $t('query') }}</el-button>
<el-button style="margin-left:10px"
size="small"
type="primary"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
</el-form-item>
<!-- <el-button style="margin-left:10px"
size="small"
type="primary"
class="diy-button--reset"
@click="resetSearch">重置</el-button> -->
<!-- <el-form-item>-->
<!-- <el-button type="primary" size="small" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>-->
<!-- </el-form-item>-->
<!-- <el-form-item>
<!-- <el-form-item>-->
<!-- <el-button type="primary" size="small" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>-->
<!-- </el-form-item>-->
<!-- <el-form-item>
<el-button size="small" style="margin-left:10px" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> -->
</el-form>
</el-form>
</el-card>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button
class="diy-button--add"
size="small"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button
>
<el-button @click="exportHandle()" class="diy-button--reset" size="small"
>导出</el-button
>
<el-button size="small" type="danger" @click="deleteHandle()">批量删除</el-button>
<el-button class="diy-button--add"
size="small"
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
<el-button @click="exportHandle()"
class="diy-button--reset"
size="small">导出</el-button>
<el-button size="small"
type="danger"
@click="deleteHandle()">批量删除</el-button>
</div>
<el-table class="resi-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="title" label="标题" header-align="center" align="center"></el-table-column>
<el-table-column prop="logType" label="日志类型" :formatter="categoryCodeFormatter" header-align="center" align="center"></el-table-column>
<el-table-column prop="logDate" label="日志时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="createdUser" 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 :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)"> {{ userId == scope.row.createdBy ? $t('update') : '查看' }}</el-button>
<el-button type="text" v-if="userId == scope.row.createdBy" 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>
<el-table class="resi-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="title"
label="标题"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="logType"
label="日志类型"
:formatter="categoryCodeFormatter"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="logDate"
label="日志时间"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="createdUser"
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 :label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150">
<template slot-scope="scope">
<el-button type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"> {{ userId == scope.row.createdBy ? $t('update') : '查看' }}</el-button>
<el-button type="text"
v-if="userId == scope.row.createdBy"
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>
</el-card>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
<add-or-update v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"></add-or-update>
</div>
</el-card>
</template>
@ -145,10 +191,10 @@ export default {
exportURL: '/gov/org/icWorkLog/export'
},
userId: this.$store.state.user.id,
agencyIdArray:[],
agencyIdArray: [],
orgOptions: [],
logTypeArr: [],
orgOptionProps:{
orgOptionProps: {
multiple: false,
value: 'agencyId',
label: 'agencyName',
@ -168,22 +214,22 @@ export default {
this.getCategrayList()
},
methods: {
getGridList() {
getGridList () {
const { user } = this.$store.state
this.$http
.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)
}
})
.catch(() => {
return this.$message.error('网络错误')
})
.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)
}
})
.catch(() => {
return this.$message.error('网络错误')
})
},
exportHandle () {
const url = this.mixinViewModuleOptions.exportURL
@ -254,20 +300,20 @@ export default {
})
return ca
},
handleChangeAgency(val) {
handleChangeAgency (val) {
let obj = this.$refs["myCascader"].getCheckedNodes()[0].data
if (obj) {
if(obj.level === 'grid'){
this.dataForm.gridId = this.agencyIdArray.length > 0 ? this.agencyIdArray[this.agencyIdArray.length - 1] : '';
this.dataForm.agencyId=''
}else{
if (obj.level === 'grid') {
this.dataForm.gridId = this.agencyIdArray.length > 0 ? this.agencyIdArray[this.agencyIdArray.length - 1] : '';
this.dataForm.agencyId = ''
} else {
this.dataForm.agencyId = this.agencyIdArray.length > 0 ? this.agencyIdArray[this.agencyIdArray.length - 1] : '';
this.dataForm.gridId = ''
}
}else{
this.dataForm.agencyId=''
} else {
this.dataForm.agencyId = ''
this.dataForm.gridId = ''
}
},
@ -291,72 +337,71 @@ export default {
}
</script>
<style lang="scss" scoped>
@import "@/assets/scss/buttonstyle.scss";
@import "@/assets/scss/buttonstyle.scss";
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
.resi-table {
::v-deep .el-button--text {
text-decoration: underline;
}
::v-deep .btn-color-del {
margin-left: 10px;
color: rgba(213, 16, 16, 1);
}
::v-deep .btn-color-edit {
color: rgba(0, 167, 169, 1);
}
}
.resi-table {
::v-deep .el-button--text {
text-decoration: underline;
}
.resi-row-btn {
margin-bottom: 13px;
.upload-btn {
display: inline-block;
margin: 0 10px;
}
::v-deep .btn-color-del {
margin-left: 10px;
color: rgba(213, 16, 16, 1);
}
::v-deep .btn-color-edit {
color: rgba(0, 167, 169, 1);
}
}
.form-wr {
.input-width {
width: 260px;
.resi-row-btn {
margin-bottom: 13px;
.upload-btn {
display: inline-block;
margin: 0 10px;
}
}
}
.input-width-textarea {
width: 500px;
}
.imsg-list {
display: flex;
align-items: center;
.imgs-item {
position: relative;
margin-right: 10px;
.el-icon-delete {
position: absolute;
top: 0;
right: 0;
font-size: 18px;
color: red;
z-index: 3;
cursor: pointer;
}
.form-wr {
.input-width {
width: 260px;
}
.input-width-textarea {
width: 500px;
}
.imsg-list {
display: flex;
align-items: center;
.imgs-item {
position: relative;
margin-right: 10px;
.el-icon-delete {
position: absolute;
top: 0;
right: 0;
font-size: 18px;
color: red;
z-index: 3;
cursor: pointer;
}
}
}
.div-content {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.div-content {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
<style>
.el-table .warning-row {
background: #ffe168;
}
.el-table .warning-row {
background: #ffe168;
}
</style>

Loading…
Cancel
Save