Browse Source

Merge branch 'test' into prod

shibei_master
13176889840 4 years ago
parent
commit
b93f271a59
  1. 67
      src/js/dai/request.js
  2. 19
      src/views/modules/communityService/dqfwzx/cpts/edit.vue
  3. 10
      src/views/modules/communityService/dqfwzx/cpts/order.vue
  4. 29
      src/views/modules/communityService/dqfwzx/index.vue
  5. 29
      src/views/modules/communityService/measure/index.vue
  6. 4
      src/views/modules/communityService/shzz/cpts/edit.vue
  7. 25
      src/views/modules/communityService/shzz/index.vue
  8. 7
      src/views/modules/communityService/sqzzz/cpts/edit.vue
  9. 25
      src/views/modules/communityService/sqzzz/index.vue
  10. 2
      src/views/modules/visual/communityGovern/resibuzz.vue
  11. 67
      src/views/modules/visual/communityParty/community.vue
  12. 22
      src/views/modules/visual/communityParty/party.vue
  13. 13
      src/views/modules/visual/measure/service.vue
  14. 56
      src/views/modules/visual/measure/volunteer.vue
  15. 12
      src/views/modules/visual/warning/components/screen-table/index.vue

67
src/js/dai/request.js

@ -1,87 +1,90 @@
/*---------------------------------------------------------------
| 请求接口封装 |
---------------------------------------------------------------*/
import axios from 'axios'
import log from 'dai-js/modules/log'
import curry from 'dai-js/tools/curry'
import axios from "axios";
import message from "dai-js/modules/message/message";
import curry from "dai-js/tools/curry";
const request = curry(
(method, url, data = {}, headers = {}, progress = () => {}) => {
return new Promise((reslove) => {
let returnIniData = {
httpCode: '',
httpCode: "",
data: {},
msg: '',
code: ''
}
msg: "",
code: "",
};
// 添加服务器端URL
function processUrl(url) {
if (url.indexOf('http://') > -1 || url.indexOf('https://') > -1) {
return url
if (url.indexOf("http://") > -1 || url.indexOf("https://") > -1) {
return url;
}
return process.env.VUE_APP_API_SERVER + url
return process.env.VUE_APP_API_SERVER + url;
}
url = processUrl(url)
url = processUrl(url);
const succFn = (res) => {
// log(`[request成功] ${url}`, data, res);
let retData = {
...returnIniData,
...res.data,
httpCode: res.statusCode
}
httpCode: res.statusCode,
};
// if(typeof Vue.$afterRequestHook == 'function'){
// retData = Vue.$afterRequestHook(retData);
// }
if (res.data.code > 8000 && res.data.code < 10000) {
message.error(res.data.msg);
}
reslove(retData)
}
reslove(retData);
};
const failFn = (err) => {
// log(`[request失败] ${url}`, data, err);
reslove(
Object.assign({}, returnIniData, {
httpCode: '9999', //访问出现意外
msg: '网络错误'
httpCode: "9999", //访问出现意外
msg: "网络错误",
})
)
}
);
};
if (method.toUpperCase() == 'POST') {
if (method.toUpperCase() == "POST") {
axios
.post(url, data, {
headers,
responseType: 'json'
responseType: "json",
// progress,
// credentials: false,
})
.then(succFn)
.catch(failFn)
.catch(failFn);
} else {
axios
.get(url, {
params: data,
headers,
responseType: 'json'
responseType: "json",
// credentials: true,
})
.then(succFn)
.catch(failFn)
.catch(failFn);
}
})
});
}
)
);
export const requestGet = request('get')
export const requestGet = request("get");
export const requestPost = request('post')
export const requestPost = request("post");
export default {
install(Vue) {
Vue.prototype.$requestGet = requestGet
Vue.prototype.$requestPost = requestPost
}
}
Vue.prototype.$requestGet = requestGet;
Vue.prototype.$requestPost = requestPost;
},
};

19
src/views/modules/communityService/dqfwzx/cpts/edit.vue

@ -408,18 +408,31 @@ export default {
},
];
},
handleDelStaff(index) {
async handleDelStaff(index) {
const { matterList } = this.dataForm;
let delItem = matterList.splice(index, 1);
let list = [...matterList];
let delItem = list.splice(index, 1);
console.log(delItem);
if (delItem[0].matterId) {
if (!confirm("删除后无法恢复,确认删除?"))
return console.log("不删了");
if (!(await this.delStaff(delItem[0].matterId))) return;
this.dataForm.delMatterList = [
...this.dataForm.delMatterList,
delItem[0].matterId,
];
}
this.dataForm.matterList = matterList;
this.dataForm.matterList = list;
},
async delStaff(matterId) {
const { data, code, msg } = await requestPost(
"/gov/org/icpartyservicecenter/delmatter",
{
matterId,
}
);
return code === 0;
},
// init
initMap() {

10
src/views/modules/communityService/dqfwzx/cpts/order.vue

@ -139,6 +139,7 @@ import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
import dateFormat from "dai-js/tools/dateFormat";
import formVltHelper from "dai-js/tools/formVltHelper";
const deepClone = function (arg) {
if (typeof arg == "object" || typeof arg == "array") {
@ -295,6 +296,9 @@ export default {
}
console.log(list);
this.timeList = list;
this.dataForm.timeId = list
.filter((item) => item.selected && item.isAppointment)
.map((item) => item.timeId);
return false;
},
@ -350,6 +354,12 @@ export default {
app.util.validateRule(messageObj);
this.btnDisable = false;
} else {
if (!formVltHelper.userOrMobile(this.dataForm.appointmentPhone)) {
return this.$message({
type: "error",
message: "手机号格式有误",
});
}
this.submit();
}
});

29
src/views/modules/communityService/dqfwzx/index.vue

@ -17,6 +17,13 @@
:key="'ct' + index"
v-for="(item, index) in tableData"
>
<div
class="item-btn"
v-if="currentIndex == index"
@click="handleEdit"
>
修改
</div>
<div class="item-name">{{ item.centerName }}</div>
<div class="item-prop">
<div class="prop-field">社区地址</div>
@ -38,11 +45,11 @@
</div>
<div class="center-right">
<div class="operate">
<!-- <div class="operate">
<el-button type="warning" size="small" @click="handleEdit"
>修改</el-button
>
</div>
</div> -->
<div id="centerIndexApp" class="div_map"></div>
@ -191,7 +198,7 @@ export default {
},
async mounted() {
await this.loadAgency();
// await this.getTableData();
await this.getTableData();
},
methods: {
// init
@ -371,6 +378,7 @@ export default {
width: 25%;
.list {
.item {
position: relative;
box-sizing: border-box;
margin-bottom: 10px;
border: 2px solid #6aa;
@ -383,6 +391,21 @@ export default {
background-color: #ffffff;
box-shadow: 0 0 10px #6aa;
}
.item-btn {
position: absolute;
top: 5px;
right: 5px;
font-size: 14px;
color: rgb(235, 192, 4);
width: 50px;
line-height: 30px;
text-align: center;
cursor: pointer;
&:hover {
// text-decoration: underline;
color: rgb(250, 208, 23);
}
}
.item-name {
font-size: 16px;
font-weight: bold;

29
src/views/modules/communityService/measure/index.vue

@ -33,6 +33,19 @@
<el-form-item label="需求人" prop="demandUserName">
<el-input v-model="searchForm.demandUserName" placeholder="请输入内容" clearable=""></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="状态" prop="status">
<el-select v-model="searchForm.status" filterable placeholder="请选择" clearable>
<el-option
v-for="item in statusOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="上报时间" prop="reportStartTime">
<el-date-picker
v-model="reportTime"
@ -45,18 +58,10 @@
clearable="">
</el-date-picker>
</el-form-item>
</div>
<div>
<el-form-item label="状态" prop="status">
<el-select v-model="searchForm.status" filterable placeholder="请选择" clearable>
<el-option
v-for="item in statusOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务类型" prop="serviceType">
<el-select v-model="searchForm.serviceType" filterable placeholder="请选择" clearable @change="handleServiceChange('query', $event)">
<el-option
@ -94,7 +99,7 @@
<el-button type="primary" @click="handleSearch">查询</el-button>
</el-form-item>
<el-form-item>
<el-button @click="resetForm('searchForm')">重置</el-button>
<el-button type="yellow" @click="resetForm('searchForm')">重置</el-button>
</el-form-item>
</div>
@ -1119,6 +1124,8 @@ export default {
</script>
<style lang="scss" scoped>
@import "@/assets/scss/buttonstyle.scss";
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;

4
src/views/modules/communityService/shzz/cpts/edit.vue

@ -345,7 +345,9 @@ export default {
if (row) {
this.dataForm = { ...this.dataForm, ...row };
this.societyId = this.dataForm.societyId;
map.setCenter(new TMap.LatLng(row.latitude, row.longitude));
if (row.latitude && row.longitude) {
map.setCenter(new TMap.LatLng(row.latitude, row.longitude));
}
}
},

25
src/views/modules/communityService/shzz/index.vue

@ -284,31 +284,24 @@ export default {
url: window.SITE_CONFIG["apiURL"] + "/heart/societyorg/import",
method: "post",
data: formData,
responseType: "blob",
// responseType: "blob",
})
.then((res) => {
this.importLoading = false;
this.importBtnTitle = "excel导入";
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" });
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
console.log("resresresresresresres", res);
this.getTableData();
if (res.data.code == 0) {
return this.$message.success(res.data.data || '导入成功');
} else {
return this.$message.error(res.data.msg);
}
})
.catch((err) => {
console.log("失败", err);
param.onError(); //
});
this.$refs.upload.clearFiles();
},
handleSizeChange(val) {

7
src/views/modules/communityService/sqzzz/cpts/edit.vue

@ -209,6 +209,7 @@
import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
import formVltHelper from "dai-js/tools/formVltHelper";
var map;
var search;
@ -389,6 +390,12 @@ export default {
app.util.validateRule(messageObj);
this.btnDisable = false;
} else {
if (!formVltHelper.userOrMobile(this.dataForm.principalPhone)) {
return this.$message({
type: "error",
message: "手机号格式有误",
});
}
this.submit();
}
});

25
src/views/modules/communityService/sqzzz/index.vue

@ -252,31 +252,24 @@ export default {
"/heart/iccommunityselforganization/importcommunityselforganization",
method: "post",
data: formData,
responseType: "blob",
// responseType: "blob",
})
.then((res) => {
this.importLoading = false;
this.importBtnTitle = "excel导入";
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" });
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
console.log("resresresresresresres", res);
this.getTableData();
if (res.data.code == 0) {
return this.$message.success(res.data.data || '导入成功');
} else {
return this.$message.error(res.data.msg);
}
})
.catch((err) => {
console.log("失败", err);
param.onError(); //
});
this.$refs.upload.clearFiles();
},
handleSizeChange(val) {

2
src/views/modules/visual/communityGovern/resibuzz.vue

@ -449,7 +449,7 @@ export default {
this.tableList = data.list
this.demand.list = data.list.map((item) => {
return [
{ type: "index" },
item.sort ? item.sort : '--',
item.issueTitle ? item.issueTitle : '',
item.suggestion ? item.suggestion : '',
item.categoryName.join(','),

67
src/views/modules/visual/communityParty/community.vue

@ -5,7 +5,7 @@
<img class="title-icon"
src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
区域化党建
区域化党建&nbsp;&nbsp;
<el-cascader
v-model="selectAgency"
:options="propTree"
@ -14,35 +14,37 @@
clearable
@change="handleCascader">
</el-cascader>
</div>
<div class="second-select">
<el-select v-model="serviceMatter"
placeholder="请选择"
@change="handleSelectChange"
@clear="handleSelectChange">
<el-option v-for="item in unitList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="second-select">
<el-date-picker v-model="timeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
prefix-icon="el-icon-caret-bottom"
value-format="yyyy-MM-dd HH:mm:ss"
:clearable="false"
:default-time="['00:00:00', '23:59:59']"
>
</el-date-picker>
</div>
</div>
<div class="second-title">
<div class="second-title-label">党建单位分类统计</div>
<div class="second-select">
<el-select v-model="serviceMatter"
placeholder="请选择"
@change="handleSelectChange"
@clear="handleSelectChange">
<el-option v-for="item in unitList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="second-select">
<el-date-picker v-model="timeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
prefix-icon="el-icon-caret-bottom"
value-format="yyyy-MM-dd HH:mm:ss"
:clearable="false"
:default-time="['00:00:00', '23:59:59']"
>
</el-date-picker>
</div>
</div>
<div class="box-wr box-wr-400">
<div class="box-left">
@ -664,6 +666,7 @@ export default {
margin-right: 6px;
}
.title-label {
font-size: 20px;
font-weight: 800;
::v-deep .el-input {
@ -673,8 +676,8 @@ export default {
font-size: 18px;
font-weight: 800;
color: #fff;
background: transparent;
border: 0;
background: #06186d;
border: 1px solid #1a64cc;
}
.el-icon-arrow-down::before {
content: "\e790";
@ -710,8 +713,10 @@ export default {
background: #2865fa;
border-radius: 50%;
}
.second-select {
margin: 0 10px 0 40px;
}
.second-select {
margin: 0 10px 0 10px;
::v-deep .el-input {
width: 180px;
height: 36px;
@ -757,8 +762,6 @@ export default {
.second-select:last-child {
margin-left: 0;
}
}
.box-wr {
display: flex;
box-sizing: border-box;

22
src/views/modules/visual/communityParty/party.vue

@ -4,18 +4,7 @@
<div class="card-title">
<img class="title-icon" src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
<!-- <el-dropdown trigger="click">
<span class="el-dropdown-link">
全部网格<i class="el-icon-caret-bottom el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>黄金糕</el-dropdown-item>
<el-dropdown-item>狮子头</el-dropdown-item>
<el-dropdown-item>螺蛳粉</el-dropdown-item>
<el-dropdown-item>双皮奶</el-dropdown-item>
<el-dropdown-item>蚵仔煎</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown> -->
党员信息统计&nbsp;&nbsp;
<el-cascader
v-model="selectAgency"
:options="propTree"
@ -832,14 +821,17 @@ export default {
}
}
.title-label {
font-size: 20px;
font-weight: 800;
::v-deep .el-input {
width: 180px;
.el-input__inner {
font-size: 20px;
font-size: 18px;
font-weight: 800;
color: #fff;
background: transparent;
border: 0;
background: #06186d;
border: 1px solid #1a64cc;
}
.el-icon-arrow-down::before {
content: "\e790";

13
src/views/modules/visual/measure/service.vue

@ -4,6 +4,7 @@
<div class="card-title">
<img class="title-icon" src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
服务措施分析 &nbsp;&nbsp;
<el-cascader
v-model="selectAgency"
:options="propTree"
@ -14,7 +15,7 @@
</el-cascader>
</div>
<div class="title-time">
<div class="title-time-label">选择时间</div>
<!-- <div class="title-time-label">选择时间</div> -->
<div class="second-select">
<!-- <el-date-picker
v-model="value2"
@ -592,7 +593,7 @@ export default {
display: flex;
align-items: center;
box-sizing: border-box;
margin-left: 30px;
margin-left: 10px;
font-size: 14px;
color: #fff;
.title-time-label {
@ -627,14 +628,16 @@ export default {
}
.title-label {
font-size: 20px;
font-weight: 800;
::v-deep .el-input {
width: 180px;
.el-input__inner {
font-size: 20px;
font-size: 18px;
font-weight: 800;
color: #fff;
background: transparent;
border: 0;
background: #06186d;
border: 1px solid #1a64cc;
}
.el-icon-arrow-down::before {
content: "\e790";

56
src/views/modules/visual/measure/volunteer.vue

@ -5,6 +5,7 @@
<img class="title-icon"
src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
志愿者服务分析&nbsp;&nbsp;
<el-cascader v-model="selectAgency"
:options="propTree"
:props="{ checkStrictly: true }"
@ -15,11 +16,11 @@
</div>
</div>
<div class="box-wr">
<cpt-card class="card-wr">
<div class="card-wr">
<div class="card-title">
<img class="title-icon"
src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
<!-- <img class="title-icon"
src="../../../../assets/img/shuju/title-tip.png" /> -->
<div class="card-left-title">
志愿者服务情况
</div>
</div>
@ -76,12 +77,12 @@
</div>
</cpt-card>
<cpt-card class="card-wr card-wr-map">
</div>
<div class="card-wr card-wr-map">
<div class="card-title">
<img class="title-icon"
src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
<!-- <img class="title-icon"
src="../../../../assets/img/shuju/title-tip.png" /> -->
<div class="card-left-title">
多元化治理平面图
</div>
</div>
@ -107,7 +108,7 @@
</div>
</cpt-card>
</div>
</div>
</cpt-card>
</div>
@ -618,6 +619,7 @@ export default {
// display: flex;
.box-wr {
display: flex;
margin-top: 40px;
}
.card-wr {
flex: 1;
@ -640,17 +642,17 @@ export default {
margin-right: 3px;
}
.title-label {
font-size: 16px;
font-size: 20px;
font-weight: 800;
::v-deep .el-input {
width: 180px;
.el-input__inner {
font-size: 20px;
font-size: 18px;
font-weight: 800;
color: #fff;
background: transparent;
border: 0;
background: #06186d;
border: 1px solid #1a64cc;
}
.el-icon-arrow-down::before {
content: "\e790";
@ -784,15 +786,35 @@ export default {
text-align: center;
.card-map {
margin-top: 10px;
margin-top: 30px;
width: 100%;
// height: calc(100vh - 285px);
height: calc(100vh - 315px);
height: calc(100vh - 335px);
padding-left: 20px;
.map {
width: 100%;
height: 100%;
}
}
}
.card-left-title {
position: relative;
padding-left: 40px;
font-size: 16px;
font-weight: 500;
color: #fff;
}
.card-left-title::after {
content: '';
position: absolute;
top: 50%;
left: 20px;
width: 12px;
height: 12px;
box-sizing: border-box;
margin-top: -6px;
background: #2865FA;
border-radius: 50%;
}
</style>

12
src/views/modules/visual/warning/components/screen-table/index.vue

@ -23,7 +23,7 @@
:key="indexs"
:style="tableContentStyle[indexs]"
>
{{ item }}
<span @click="toUserInfo(item)">{{ item }}</span>
<span
v-if="indexs + 1 == value.length && item.length > 8"
class="more"
@ -31,7 +31,11 @@
ref="morePop"
>
更多>
<span class="more-pop" v-if="visiblePopList[index]">
<span
class="more-pop"
@click="toUserInfo(item)"
v-if="visiblePopList[index]"
>
<!-- 李佳琪刘阳赵欣丁一嘉敏李岩何嘉慧
李易峰赵敏何军曲树惠 -->
{{ item }}
@ -180,6 +184,10 @@ export default {
created() {},
methods: {
toUserInfo(uid) {
// this.$router.push({ path: `/main-shuju/visual-basicinfo-people/${uid}` });
},
onClickMorePop(index) {
this.visiblePopList.forEach((item, indexs) => {
if (index == indexs) {

Loading…
Cancel
Save