Commit 11f4238d authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 8180135f f3e14666
<template>
<div class="business flex_row p15">
<div class="business p15">
<sitetree @getSite="handleClick" @clickArea="clickArea" />
<!-- <div class="line"></div> -->
<div class="right ff">
<a-tabs default-active-key="1">
<a-tab-pane forceRender key="1" tab="业务管理">
<a-tabs :default-active-key="1" @change="handleChange">
<a-tab-pane forceRender :key="1" tab="业务管理">
<BusinessTabs1 ref="BusinessTabs1" />
</a-tab-pane>
<a-tab-pane forceRender key="2" tab="事项管理">
<a-tab-pane forceRender :key="2" tab="事项管理">
<BusinessTabs2 ref="BusinessTabs2" />
</a-tab-pane>
<a-tab-pane forceRender key="3" tab="业务事项关联">
<a-tab-pane forceRender :key="3" tab="业务事项关联">
<BusinessTabs3 ref="BusinessTabs3" />
</a-tab-pane>
</a-tabs>
......@@ -37,36 +35,49 @@ export default {
},
data() {
return {};
return {
siteId: "", // 站点id
};
},
methods: {
// 选择站点
handleClick(val) {
handleClick(siteInfo) {
this.siteId = siteInfo.id;
if (this.$refs.BusinessTabs1) {
this.$refs.BusinessTabs1.getSiteBusinessData({ siteId: val.id });
this.$refs.BusinessTabs1.getSiteInfo(val);
this.$refs.BusinessTabs1.getSiteInfo(siteInfo.id);
}
if (this.$refs.BusinessTabs2) {
this.$refs.BusinessTabs2.getMatterSiteData({ siteId: val.id });
this.$refs.BusinessTabs2.getSiteInfo(val);
this.$refs.BusinessTabs2.getSiteInfo(siteInfo.id);
}
if (this.$refs.BusinessTabs3) {
this.$refs.BusinessTabs3.getSiteBusinessData({ siteId: val.id });
this.$refs.BusinessTabs3.getMatterSiteData({ siteId: val.id });
this.$refs.BusinessTabs3.getBusinessMatterData({ siteId: val.id });
this.$refs.BusinessTabs3.getSiteInfo(val);
this.$refs.BusinessTabs3.getSiteInfo(siteInfo.id);
}
},
// 点击区域
clickArea() {
this.$refs.BusinessTabs1.getSiteInfo("");
this.siteId = "";
this.$refs.BusinessTabs1.getEmpty();
this.$refs.BusinessTabs2.getSiteInfo("");
this.$refs.BusinessTabs2.getEmpty();
this.$refs.BusinessTabs3.getSiteInfo("");
this.$refs.BusinessTabs3.getEmpty();
},
// 切开tab
handleChange(key) {
if (this.siteId) {
switch (key) {
case 1:
console.log(this.siteId);
this.$refs.BusinessTabs1.getSiteInfo(this.siteId);
break;
case 2:
this.$refs.BusinessTabs2.getSiteInfo(this.siteId);
break;
case 3:
this.$refs.BusinessTabs3.getSiteInfo(this.siteId);
break;
}
}
},
},
};
</script>
......@@ -75,25 +86,13 @@ export default {
.business {
width: 100%;
height: 89vh;
// .line {
// width: 18px;
// background-color: #f0f2f5;
// margin-top: -20px;
// position: relative;
// &::after {
// content: "";
// width: 15px;
// height: 20px;
// background-color: #f0f2f5;
// position: absolute;
// bottom: -20px;
// }
// }
display: flex;
/deep/.ant-tabs-nav-container {
border-bottom: 1px solid rgb(224, 224, 224) !important;
}
.right {
width: 100%;
width: 85%;
position: relative;
margin-left: 18px;
&::after {
......
......@@ -3,8 +3,21 @@
<div class="left">
<div class="header">
<h3 class="titel">站点业务列表</h3>
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
<a-button class="add-btn" @click="showModal"> 新增业务 </a-button>
<div class="control">
<div>
<a-button type="danger" @click="handleDelAll"> 批量移除 </a-button>
<a-button class="add-btn" @click="showModal"> 新增业务 </a-button>
</div>
<div class="business-control">
<a-input-search
placeholder="请输入业务名称搜索"
enter-button="搜索"
v-model="serchSiteBusiness"
@search="onSearchLeft"
allowClear
/>
</div>
</div>
</div>
<div class="table-content">
<!-- 表格 -->
......@@ -54,33 +67,11 @@
</template>
</a-table>
</div>
<!-- 分页 -->
<!-- <div class="pagination" v-if="leftTotal">
<a-pagination
v-model="leftCurrent"
:show-total="(total) => `共 ${total} 条`"
:total="leftTotal"
@change="changeLeft"
show-less-items
show-size-changer
show-quick-jumper
:pageSizeOptions="pageSizeOptions"
@showSizeChange="showSizeChange"
/>
</div> -->
</div>
<!-- 右 -->
<div class="right">
<div class="header">
<h3 class="titel">一体化业务列表</h3>
<!-- <a-radio-group
class="titel"
v-model="businessType"
@change="onChangeBusiness"
>
<a-radio-button :value="0"> 一体化业务列表 </a-radio-button>
<a-radio-button :value="1"> 自建业务列表 </a-radio-button>
</a-radio-group> -->
<div class="control">
<div>
<a-button type="primary" @click="handleAddAll"> 批量加入 </a-button>
......@@ -145,21 +136,6 @@
</template>
</a-table>
</div>
<!-- 分页 -->
<!-- <div class="pagination" v-if="rightTotal">
<a-pagination
v-model="rightCurrent"
size="small"
:show-total="(total) => `共 ${total} 条`"
:total="rightTotal"
@change="changeRight"
show-less-items
show-size-changer
show-quick-jumper
:pageSizeOptions="pageSizeOptions"
@showSizeChange="showSizeChangeRight"
/>
</div> -->
</div>
<!-- 新增对话框 -->
<addprofession
......@@ -253,20 +229,22 @@ export default {
serchData: "",
siteId: "", // 站点id
businessIds: "", // 业务id
serchSiteBusiness: "", // 左边站点业务名称搜索
};
},
created() {
this.getBusinessListData();
},
created() {},
methods: {
// 获取站点
getSiteInfo(val) {
this.siteId = val.id;
getSiteInfo(siteId) {
Object.assign(this.$data, this.$options.data()); //获取data源对象,覆盖当前data对象状态
this.siteId = siteId;
this.getSiteBusinessData();
this.getBusinessListData();
},
getEmpty() {
this.businessData = [];
this.leftTotal = 0;
Object.assign(this.$data, this.$options.data()); //获取data源对象,覆盖当前data对象状态
},
// 去掉空children
delChildren(arr) {
return arr.map((v) => {
......@@ -285,23 +263,23 @@ export default {
page: this.leftCurrent,
size: this.leftSize,
siteId: this.siteId,
businessName: `%${this.serchSiteBusiness}%`,
...search,
});
let { code, data } = res.data;
if (code === 1) {
this.leftTotal = data.pageInfo.totalResult;
this.businessData = this.delChildren(data.data);
console.log(this.businessData);
this.leftLoading = false;
}
},
// 获取业务列表
// 获取一体化业务列表
async getBusinessListData() {
this.rightLoading = true;
let res = await getBusinessList({
page: this.rightCurrent,
size: this.rightSize,
name: this.serchData,
name: `%${this.serchData}%`,
businessType: 0,
});
let { code, data } = res.data;
......@@ -312,11 +290,10 @@ export default {
this.rightLoading = false;
}
},
// 切换业务类型
// onChangeBusiness(val) {
// this.businessType = val.target.value;
// this.getBusinessListData();
// },
onSearchLeft() {
this.leftCurrent = 1;
this.getSiteBusinessData();
},
// 删除
handleDel(num, data) {
let _this = this;
......@@ -466,36 +443,6 @@ export default {
},
});
},
// 自定义表格展开图标
expandIcon(props) {
if (props.record.children) {
if (props.expanded) {
//有数据-展开时候图标
return (
<div
style="display: inline-block"
onClick={(e) => {
props.onExpand(props.record, e);
}}
>
<a-icon type="down" />
</div>
);
} else {
//有数据-未展开时候图标
return (
<div
style="display: inline-block"
onClick={(e) => {
props.onExpand(props.record, e);
}}
>
<a-icon type="right" />
</div>
);
}
}
},
},
};
</script>
......
......@@ -192,12 +192,12 @@
<script>
import {
getSiteMatterList,
getMatterList,
getMatterListSubList,
addMatterToSite,
delSiteMatter,
delMatter,
} from "@/services/matter";
import { getDeptList } from "@/services/dept";
// import { getDeptList } from "@/services/dept";
// import local from "@/utils/local";
const leftColumns = [
{
......@@ -292,18 +292,19 @@ export default {
};
},
created() {
this.getMatterListData();
// this.getMatterSiteData();
},
methods: {
// 获取站点
getSiteInfo(val) {
this.siteId = val.id;
getSiteInfo(siteId) {
Object.assign(this.$data, this.$options.data()); //获取data源对象,覆盖当前data对象状态
this.siteId = siteId;
this.getMatterSiteData();
this.getMatterListData();
},
getEmpty() {
this.matterSiteData = [];
this.leftTotal = 0;
Object.assign(this.$data, this.$options.data()); //获取data源对象,覆盖当前data对象状态
},
// 获取站点事项
async getMatterSiteData(search = {}) {
......@@ -324,14 +325,14 @@ export default {
this.matterSiteData = data;
this.leftLoading = false;
},
// 获取事项列表
// 获取一体化事项列表
async getMatterListData(search = {}) {
this.rightLoading = true;
let res = await getMatterList({
let res = await getMatterListSubList({
siteId: this.siteId,
page: this.rightCurrent,
size: this.rightSize,
matterName: `%${this.searchRightVal}%`,
source: 0,
matterName: this.searchRightVal,
...search,
});
let { pageInfo, data } = res.data.data;
......@@ -343,12 +344,6 @@ export default {
this.rightTotal = pageInfo.totalResult;
this.rightLoading = false;
},
// 获取部门列表
async getDeptData() {
let res = await getDeptList({ siteId: this.siteId });
let { data } = res.data.data;
this.deptList = data;
},
// 左边搜索
onSearchLeft() {
this.leftCurrent = 1;
......@@ -372,6 +367,7 @@ export default {
if (code === 1) {
_this.$message.success(msg);
_this.getMatterSiteData();
_this.getMatterListData();
_this.deleteData = "";
_this.$bus.$emit("delMatterSiteData");
_this.$bus.$emit("delMatterSiteRelevance", row);
......
......@@ -148,6 +148,7 @@
<!-- 关联 -->
<a-modal
v-model="isCorrelation"
:maskClosable="false"
title="关联确认"
@cancel="handleclose"
:confirmLoading="iscConfirmLoading"
......@@ -191,6 +192,7 @@
</a-modal>
<!-- 解除 -->
<a-modal
:maskClosable="false"
v-model="isUnbound"
title="解除确认"
@ok="handleUnbound"
......@@ -231,6 +233,7 @@
</a-modal>
<!-- 批量解除 -->
<a-modal
:maskClosable="false"
v-model="isUnboundAll"
title="解除确认"
:confirmLoading="iscConfirmLoading"
......@@ -401,14 +404,16 @@ export default {
methods: {
// 获取站点
getSiteInfo(val) {
this.siteId = val.id;
getSiteInfo(siteId) {
Object.assign(this.$data, this.$options.data()); //获取data源对象,覆盖当前data对象状态
this.siteId = siteId;
console.log(this.siteId);
this.getSiteBusinessData({ siteId });
this.getMatterSiteData({ siteId });
this.getBusinessMatterData({ siteId });
},
getEmpty() {
this.businessMatterData = [];
this.SiteMatterData = [];
this.leftTotal = 0;
this.rightTotal = 0;
Object.assign(this.$data, this.$options.data()); //获取data源对象,覆盖当前data对象状态
},
// 获取站点业务关联列表
async getBusinessMatterData(search = {}) {
......
......@@ -4,6 +4,7 @@
:visible="visibleAll"
:confirm-loading="confirmLoading"
@cancel="handleCancel"
:maskClosable="false"
>
<a-button slot="footer" @click="handleReset">重置</a-button>
<a-button slot="footer" type="primary" @click="handleOk">保存</a-button>
......@@ -69,7 +70,7 @@
</template>
<script>
import { checkEn } from "@/utils/validate";
import { checkEn, checkBusinessName } from "@/utils/validate";
// import YSwitch from "@/components/yswitch/YSwitch.vue";
import {
saveBusiness,
......@@ -102,7 +103,9 @@ export default {
isBusiness: [
{ required: true, message: "请选择业务等级", trigger: "change" },
],
name: [{ required: true, message: "请输入业务名称", trigger: "blur" }],
name: [
{ required: true, validator: checkBusinessName, trigger: "blur" },
],
englishname: [{ required: true, validator: checkEn, trigger: "blur" }],
// flownum: [{ required: true, validator: checkFlowNum, trigger: "blur" }],
},
......@@ -194,8 +197,6 @@ export default {
this.$bus.$emit("newBusiness");
}
this.confirmLoading = false;
} else {
this.$message.error(msg);
}
}
});
......
......@@ -102,7 +102,12 @@
</div> -->
</a-card>
<!-- 新增模块 -->
<a-modal v-model="visible" :title="title" @cancel="handleClose">
<a-modal
v-model="visible"
:maskClosable="false"
:title="title"
@cancel="handleClose"
>
<template slot="footer">
<a-button type="primary" @click="handleOk">确定</a-button>
<a-button @click="handleReset">重置</a-button>
......
......@@ -3,7 +3,8 @@
:title="title"
@ok="handleOk"
:visible="Visible"
@cancel="Visible = false"
@cancel="handleClose"
:maskClosable="false"
>
<a-form-model
:model="form"
......@@ -45,7 +46,10 @@
<a-row>
<a-col :span="12">
<a-form-model-item label="联系电话" prop="deptTelphone">
<a-input v-model="form.deptTelphone" placeholder="请输入联系电话" />
<a-input
v-model="form.deptTelphone"
placeholder="请输入座机电话:区号-电话号码"
/>
</a-form-model-item>
</a-col>
<a-col :span="12">
......@@ -101,6 +105,16 @@ import YSwitch from "@/components/yswitch/YSwitch.vue";
export default {
components: { YSwitch },
data() {
const changeLandline = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入座机号"));
callback();
} else if (!/^[0][1-9]{2,3}-[0-9]{5,10}$/.test(value)) {
callback(new Error("区号-电话号码"));
} else {
callback();
}
};
return {
labelCol: { span: 6 },
wrapperCol: { span: 14 },
......@@ -133,7 +147,7 @@ export default {
{ required: true, message: "部门编号不能为空", trigger: "blur" },
],
deptTelphone: [
{ required: true, message: "部门电话不能为空", trigger: "blur" },
{ required: true, validator: changeLandline, trigger: "blur" },
],
},
};
......@@ -187,13 +201,18 @@ export default {
let { code, msg } = res.data;
if (code === 1) {
this.$refs.formData.resetFields();
this.Visible = false;
this.$message.success(msg);
this.$emit("addDept");
this.handleClose();
}
}
});
},
// 关闭
handleClose() {
this.$refs.formData.resetFields();
this.Visible = false;
},
},
};
</script>
......@@ -203,7 +222,9 @@ export default {
width: 800px;
}
.ant-form-item {
display: flex;
align-items: center !important;
margin-bottom: 15px;
}
/deep/.ant-form-explain {
position: absolute;
}
</style>
\ No newline at end of file
......@@ -4,6 +4,7 @@
@ok="handleAdd"
:visible="Visible"
@cancel="handleClose"
:maskClosable="false"
>
<a-form-model
ref="formData"
......@@ -186,8 +187,8 @@ export default {
fromnum: "", // 窗口编号
hongqi: "", // 红旗窗口
summary: "", // 备注
building: undefined, // 楼栋
level: undefined, // 楼层
building: 1, // 楼栋
level: 1, // 楼层
},
rules: {
siteName: [
......
......@@ -146,28 +146,16 @@
</span>
</a-table>
</div>
<!-- 翻页 -->
<!-- <div class="pagination" v-if="total">
<a-pagination
v-model="page"
:show-total="(total) => `共 ${total} 条`"
:total="total"
@change="onPage"
show-less-items
show-size-changer
show-quick-jumper
:pageSizeOptions="pageSizeOptions"
@showSizeChange="showSizeChange"
/>
</div> -->
</div>
<!-- 关联业务 -->
<div>
<!-- 关联业务 -->
<a-modal
title="关联业务"
:visible="visibleWork"
@cancel="visibleWork = false"
width="600px"
:maskClosable="false"
>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
......@@ -393,12 +381,7 @@ export default {
}
},
clickArea() {
this.department = [];
this.windowData = [];
this.siteId = "";
this.total = 0;
this.active = undefined;
this.deptId = "";
Object.assign(this.$data, this.$options.data());
},
// 去掉空children
delChildren(arr) {
......@@ -604,8 +587,6 @@ export default {
this.$message.success(msg);
this.$refs.formData.resetFields();
this.visibleWork = false;
} else {
this.$message.error(msg);
}
}
});
......@@ -617,7 +598,6 @@ export default {
// 新增窗口事项
addWindowMatter(data) {
this.isShow = true;
console.log(data);
let obj = {
windowId: data.id,
windowName: data.name,
......@@ -810,7 +790,7 @@ export default {
}
}
/deep/.ant-modal-body {
max-height: 400px;
max-height: 600px;
overflow-y: auto;
&::-webkit-scrollbar {
width: 5px;
......
<template>
<a-modal
:maskClosable="false"
:title="title"
@ok="handleOk"
:visible="Visible"
......
......@@ -175,14 +175,13 @@ export default {
methods: {
// 选择站点
handleClick(val) {
Object.assign(this.$data, this.$options.data());
this.siteId = val.id;
this.getHolidayData();
},
// 点击区域
clickArea() {
this.list = [];
this.total = 0;
this.siteId = "";
Object.assign(this.$data, this.$options.data());
},
// 获取节假日列表
async getHolidayData() {
......
......@@ -4,6 +4,7 @@
:title="title"
:visible="formVisible"
@cancel="closeModal"
:maskClosable="false"
:width="1200"
>
<div slot="footer">
......@@ -66,7 +67,7 @@
<a-input
v-model="formInfo.siteTel"
type="text"
placeholder="请输入中心电话"
placeholder="请输入座机号码:区号-号码"
/>
</a-form-model-item>
<a-form-model-item label="站点负责人" prop="leadingOfficial">
......
......@@ -389,7 +389,6 @@ export default {
}
this.fieldList = data;
this.rightTotal = pageInfo.totalResult;
console.log(data);
this.rightLoading = false;
},
// 新增模板
......
......@@ -5,33 +5,23 @@
:id="conponentsId"
class="call-out-skin-across"
:style="{
backgroundImage: filterImg('背景大图')
? `url(${api + filterImg('背景大图')})`
: '',
background: filterItem('1', 0),
}"
>
<!-- 头部 -->
<div class="header flex jcb">
<div class="header-title flex aic">
<img src="../../../../assets/img/logo.png" />
<h1 :style="{ color: filterColor('标题颜色') }">政务服务中心</h1>
<h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1>
</div>
<div class="flex header-right jcb">
<p>
<span :style="{ color: filterColor('数据标题') }"
>今日评价次数:</span
>
<span class="count" :style="{ color: filterColor('数据颜色') }"
>66</span
>
<span :style="{ color: filterItem('5', 0) }">今日评价次数:</span>
<span class="count" :style="{ color: filterItem('6', 0) }">66</span>
</p>
<p>
<span :style="{ color: filterColor('数据标题') }"
>累计评价次数:</span
>
<span class="count" :style="{ color: filterColor('数据颜色') }"
>66</span
>
<span :style="{ color: filterItem('5', 0) }">累计评价次数:</span>
<span class="count" :style="{ color: filterItem('6', 0) }">66</span>
</p>
</div>
</div>
......@@ -40,9 +30,7 @@
<div
class="left flex flexc jca aic"
:style="{
backgroundImage: filterImg('信息面板')
? `url(${api + filterImg('信息面板')})`
: '',
background: filterItem('10', 0),
}"
>
<div class="left-info flex aic">
......@@ -64,48 +52,48 @@
<div class="footer flex jcb aic">
<div
class="footer-btn flex flexc jcc"
v-for="(v, i) in filterNav('4')"
:key="v.id"
:class="{ border: !filterItem('4', i) }"
:style="{
backgroundImage: filterImg('办事指南')
? `url(${api + filterImg('办事指南')})`
: '',
background: filterItem('4', i),
}"
>
<p>办事指南</p>
<span>Processing matters</span>
</div>
></div>
<!-- <div
class="footer-btn flex flexc jcc"
:class="{ border: !filterItem('4', 1) }"
:style="{
background: filterItem('4', 1),
}"
></div>
<div
class="footer-btn flex flexc jcc"
:class="{ border: !filterItem('4', 2) }"
:style="{
backgroundImage: filterImg('我要评价')
? `url(${api + filterImg('我要评价')})`
: '',
background: filterItem('4', 2),
}"
>
<p>我要评价</p>
<span>Processing matters</span>
</div>
></div>
<div
class="footer-btn flex flexc jcc"
:class="{ border: !filterItem('4', 3) }"
:style="{
backgroundImage: filterImg('投诉建议')
? `url(${api + filterImg('投诉建议')})`
: '',
background: filterItem('4', 3),
}"
>
<p>投诉建议</p>
<span>Processing matters</span>
</div>
></div>
<div
class="footer-btn flex flexc jcc"
:class="{ border: !filterItem('4', 4) }"
:style="{
backgroundImage: filterImg('廉政风险')
? `url(${api + filterImg('廉政风险')})`
: '',
background: filterItem('4', 4),
}"
>
<p>廉政风险</p>
<span>Processing matters</span>
</div>
></div>
<div
class="footer-btn flex flexc jcc"
:class="{ border: !filterItem('4', 5) }"
:style="{
background: filterItem('4', 5),
}"
></div> -->
</div>
</div>
</div>
......@@ -139,32 +127,66 @@ export default {
},
methods: {
// 过滤图片
filterImg(val) {
let url = "";
this.skinFieldList
.filter((v) => {
return v.fieldType === "2";
})
.forEach((v) => {
if (v.fieldName !== "" && v.fieldName === val) {
url = v.fieldValue;
}
});
return url;
// filterImg(val) {
// let url = "";
// this.skinFieldList
// .filter((v) => {
// return v.fieldType === "2";
// })
// .forEach((v) => {
// if (v.fieldName !== "" && v.fieldName === val) {
// url = v.fieldValue;
// }
// });
// return url;
// },
// // 过滤颜色
// filterColor(val) {
// let str = "";
// this.skinFieldList
// .filter((v) => {
// return v.fieldType === "1";
// })
// .forEach((v) => {
// if (v.fieldName !== "" && v.fieldName === val) {
// str = v.fieldValue;
// }
// });
// return str;
// },
// 过滤属性类型
filterItem(type, index) {
let arr = this.skinFieldList.filter((v) => {
return v.remark == type;
});
if (arr.length) {
return this.filterValueType(arr[index]);
} else {
return "";
}
},
// 过滤颜色
filterColor(val) {
let str = "";
this.skinFieldList
.filter((v) => {
return v.fieldType === "1";
})
.forEach((v) => {
if (v.fieldName !== "" && v.fieldName === val) {
str = v.fieldValue;
}
});
return str;
// 过滤属性值类型
filterValueType(info = {}) {
let value = "";
if (info.fieldType !== "" && info.fieldType === "1" && info.fieldValue) {
value = info.fieldValue;
} else if (
info.fieldType !== "" &&
info.fieldType === "2" &&
info.fieldValue
) {
value = `url(${this.api + info.fieldValue})`;
}
return value;
},
// 过滤导航
filterNav(type) {
let arr = [];
arr = this.skinFieldList.filter((v) => {
return v.remark == type;
});
return arr;
},
},
};
......@@ -176,9 +198,9 @@ export default {
height: 562.5px;
padding: 20px;
background-image: linear-gradient(#26c5ff, #2c66ff);
background-repeat: no-repeat;
background-position: center;
background-size: cover;
background-repeat: no-repeat !important ;
background-position: center !important ;
background-size: cover !important ;
.header {
color: #fff;
.header-title {
......@@ -242,12 +264,18 @@ export default {
margin-top: 20px;
width: 100%;
.footer-btn {
width: 22%;
flex: 1;
margin-right: 10px;
height: 120px;
padding: 10px;
background-color: #fff;
border-radius: 4px;
background-size: 100% 100%;
background-size: 100% 100% !important;
}
& .footer-btn:last-child {
margin-right: 0px;
}
.border {
border: 1px dashed #ececec;
}
p {
margin: 0px;
......
......@@ -5,18 +5,19 @@
:id="conponentsId"
class="call-out-skin-across"
:style="{
backgroundImage: filterImg('背景大图')
? `url(${api + filterImg('背景大图')})`
: '',
background: filterItem('1', 0),
}"
>
<!-- 头部 -->
<div class="header flex jcb">
<div class="header-title flex aic">
<img src="../../../../assets/img/logo.png" />
<h1 :style="{ color: filterColor('标题颜色') }">政务服务中心</h1>
<h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1>
</div>
<div class="flex header-right jcb">
<div
class="flex header-right jcb"
:style="{ color: filterItem('3', 0) }"
>
<div class="flex flexc aic jcc">
<a-icon type="setting" />
<span>设置</span>
......@@ -33,7 +34,12 @@
</div>
<!-- 主体 -->
<div class="main flex">
<div class="left flex flexc aic jcc">
<div
class="left flex flexc aic jcc"
:style="{
background: filterItem('10', 0),
}"
>
<img src="../../../../assets/img/peopo.jpeg" />
<p>姓名:XXX</p>
<p>部门:审批部</p>
......@@ -41,9 +47,10 @@
<div
class="left-btn"
:style="{
backgroundImage: `linear-gradient(${filterColor(
'辅助色'
)}, ${filterColor('主题色')})`,
backgroundImage: `linear-gradient(${filterItem(
'8',
0
)}, ${filterItem('7', 0)})`,
}"
>
回归
......@@ -52,50 +59,11 @@
<div class="right flex1 flex flexwrap jcb acb">
<div
class="right-item"
v-for="(v, i) in filterNav('4')"
:key="v.id"
:class="{ border: !filterItem('4', i) }"
:style="{
backgroundImage: filterImg('弃号')
? `url(${api + filterImg('弃号')})`
: `url(${require('../../../../assets/img/qh.png')})`,
}"
></div>
<div
class="right-item"
:style="{
backgroundImage: filterImg('重新呼叫')
? `url(${api + filterImg('重新呼叫')})`
: `url(${require('../../../../assets/img/cxhj.png')})`,
}"
></div>
<div
class="right-item"
:style="{
backgroundImage: filterImg('呼叫转移')
? `url(${api + filterImg('呼叫转移')})`
: `url(${require('../../../../assets/img/hjzy.png')})`,
}"
></div>
<div
class="right-item"
:style="{
backgroundImage: filterImg('选叫')
? `url(${api + filterImg('选叫')})`
: `url(${require('../../../../assets/img/xj.png')})`,
}"
></div>
<div
class="right-item"
:style="{
backgroundImage: filterImg('评价')
? `url(${api + filterImg('评价')})`
: `url(${require('../../../../assets/img/pj.png')})`,
}"
></div>
<div
class="right-item"
:style="{
backgroundImage: filterImg('下一位')
? `url(${api + filterImg('下一位')})`
: `url(${require('../../../../assets/img/xyw.png')})`,
background: filterItem('4', i),
}"
></div>
</div>
......@@ -103,36 +71,38 @@
<!-- 尾部 -->
<div class="footer flex jcc aic">
<div class="footer-item">
<p>当前窗口</p>
<p class="footer-data" :style="{ color: filterColor('主题色') }">
<p :style="{ color: filterItem('5', 0) }">当前窗口</p>
<p class="footer-data" :style="{ color: filterItem('6', 0) }">
A区16号
</p>
</div>
<div
class="line"
:style="{
backgroundImage: `linear-gradient(to bottom,#ccc,${filterColor(
'主题色'
)} 45%,${filterColor('主题色')} 65%,#ccc 100% )`,
backgroundImage: `linear-gradient(to bottom,#ccc,${filterItem(
'6',
0
)} 45%,${filterItem('6', 0)} 65%,#ccc 100% )`,
}"
></div>
<div class="footer-item">
<p>当前办理</p>
<p class="footer-data" :style="{ color: filterColor('主题色') }">
<p :style="{ color: filterItem('5', 0) }">当前办理</p>
<p class="footer-data" :style="{ color: filterItem('6', 0) }">
A0012
</p>
</div>
<div
class="line"
:style="{
backgroundImage: `linear-gradient(to bottom,#ccc,${filterColor(
'主题色'
)} 45%,${filterColor('主题色')} 65%,#ccc 100% )`,
backgroundImage: `linear-gradient(to bottom,#ccc,${filterItem(
'6',
0
)} 45%,${filterItem('6', 0)} 65%,#ccc 100% )`,
}"
></div>
<div class="footer-item">
<p>等待办理</p>
<p class="footer-data" :style="{ color: filterColor('主题色') }">
<p :style="{ color: filterItem('5', 0) }">等待办理</p>
<p class="footer-data" :style="{ color: filterItem('6', 0) }">
<span>160</span>
<span>120</span>
</p>
......@@ -140,16 +110,15 @@
<div
class="line"
:style="{
backgroundImage: `linear-gradient(to bottom,#ccc,${filterColor(
'主题色'
)} 45%,${filterColor('主题色')} 65%,#ccc 100% )`,
backgroundImage: `linear-gradient(to bottom,#ccc,${filterItem(
'6',
0
)} 45%,${filterItem('6', 0)} 65%,#ccc 100% )`,
}"
></div>
<div class="footer-item">
<p>当天办理</p>
<p class="footer-data" :style="{ color: filterColor('主题色') }">
16
</p>
<p :style="{ color: filterItem('5', 0) }">当天办理</p>
<p class="footer-data" :style="{ color: filterItem('6', 0) }">16</p>
</div>
</div>
</div>
......@@ -184,32 +153,66 @@ export default {
},
methods: {
// 过滤图片
filterImg(val) {
let url = "";
this.skinFieldList
.filter((v) => {
return v.fieldType === "2";
})
.forEach((v) => {
if (v.fieldName !== "" && v.fieldName === val) {
url = v.fieldValue;
}
});
return url;
// filterImg(val) {
// let url = "";
// this.skinFieldList
// .filter((v) => {
// return v.fieldType === "2";
// })
// .forEach((v) => {
// if (v.fieldName !== "" && v.fieldName === val) {
// url = v.fieldValue;
// }
// });
// return url;
// },
// // 过滤颜色
// filterColor(val) {
// let str = "";
// this.skinFieldList
// .filter((v) => {
// return v.fieldType === "1";
// })
// .forEach((v) => {
// if (v.fieldName !== "" && v.fieldName === val) {
// str = v.fieldValue;
// }
// });
// return str;
// },
// 过滤属性类型
filterItem(type, index) {
let arr = this.skinFieldList.filter((v) => {
return v.remark == type;
});
if (arr.length) {
return this.filterValueType(arr[index]);
} else {
return "";
}
},
// 过滤属性值类型
filterValueType(info = {}) {
let value = "";
if (info.fieldType !== "" && info.fieldType === "1" && info.fieldValue) {
value = info.fieldValue;
} else if (
info.fieldType !== "" &&
info.fieldType === "2" &&
info.fieldValue
) {
value = `url(${this.api + info.fieldValue})`;
}
return value;
},
// 过滤颜色
filterColor(val) {
let str = "";
this.skinFieldList
.filter((v) => {
return v.fieldType === "1";
})
.forEach((v) => {
if (v.fieldName !== "" && v.fieldName === val) {
str = v.fieldValue;
}
});
return str;
// 过滤导航
filterNav(type) {
let arr = [];
arr = this.skinFieldList.filter((v) => {
return v.remark == type;
});
return arr;
},
},
};
......@@ -221,9 +224,9 @@ export default {
height: 562.5px;
padding: 20px;
background-image: linear-gradient(#26c5ff, #2c66ff);
background-repeat: no-repeat;
background-position: center;
background-size: cover;
background-repeat: no-repeat !important;
background-position: center !important;
background-size: cover !important;
.header {
.header-title {
h1 {
......@@ -267,9 +270,12 @@ export default {
width: 49%;
height: 100px;
border-radius: 6px;
background-repeat: no-repeat;
background-position: center;
background-size: 100% 100%;
background-repeat: no-repeat !important;
background-position: center !important;
background-size: 100% 100% !important;
}
.border {
border: 1px dashed #ececec;
}
}
}
......
......@@ -5,18 +5,16 @@
class="centralize-across"
:id="conponentsId"
:style="{
backgroundImage: filterImg('背景大图')
? `url(${api + filterImg('背景大图')})`
: '',
background: filterItem('1', 0),
}"
>
<!-- 头部 -->
<div class="header flex aic jcb">
<div class="title flex aic">
<img src="../../../../assets/img/logo.png" />
<h1 :style="{ color: filterColor('标题颜色') }">政务服务中心</h1>
<h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1>
</div>
<div class="time" :style="{ color: filterColor('时间颜色') }">
<div class="time" :style="{ color: filterItem('3', 0) }">
2022-7-18 17:00:00 星期一
</div>
</div>
......@@ -26,122 +24,104 @@
<img src="../../../../assets/img/Banner.png" />
</div>
<div class="call-out flex1 flex flexc jcb">
<div
class="call-out-item"
:style="{ backgroundColor: filterColor('正在呼叫') }"
>
<div class="call-out-item">
<div class="call-out-item-title">正在呼叫</div>
<div class="call-out-item-text call-out-item-text-1">
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>03号窗口</span
>
</div>
</div>
<div
class="call-out-item"
:style="{ backgroundColor: filterColor('正在办理') }"
>
<div class="call-out-item">
<div class="call-out-item-title">正在办理</div>
<div class="call-out-item-text call-out-item-text-2">
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>03号窗口</span
>
</div>
</div>
<div
class="call-out-item"
:style="{ backgroundColor: filterColor('正在办理') }"
>
<div class="call-out-item">
<div class="call-out-item-title">正在办理</div>
<div class="call-out-item-text call-out-item-text-2">
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>03号窗口</span
>
</div>
</div>
<div
class="call-out-item"
:style="{ backgroundColor: filterColor('等待中') }"
>
<div class="call-out-item">
<div class="call-out-item-title">等待中</div>
<div class="call-out-item-text call-out-item-text-3">
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>--</span
>
</div>
</div>
<div
class="call-out-item"
:style="{ backgroundColor: filterColor('等待中') }"
>
<div class="call-out-item">
<div class="call-out-item-title">等待中</div>
<div class="call-out-item-text call-out-item-text-3">
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>--</span
>
</div>
</div>
<div
class="call-out-item"
:style="{ backgroundColor: filterColor('等待中') }"
>
<div class="call-out-item">
<div class="call-out-item-title">等待中</div>
<div class="call-out-item-text call-out-item-text-3">
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>A0004号</span
>
<span
class="call-out-item-code"
:style="{ color: filterColor('主题色') }"
:style="{ color: filterItem('7', 0) }"
>--</span
>
</div>
......@@ -151,26 +131,26 @@
<!-- 尾部 -->
<div class="footer flex aic jca">
<div class="footer-item flex flexc jcc aic">
<p>今日取号量</p>
<p class="footer-count" :style="{ color: filterColor('主题色') }">
<p :style="{ color: filterItem('5', 0) }">今日取号量</p>
<p class="footer-count" :style="{ color: filterItem('6', 0) }">
200次
</p>
</div>
<div class="footer-item flex flexc jcc aic">
<p>累计取号量</p>
<p class="footer-count" :style="{ color: filterColor('主题色') }">
<p :style="{ color: filterItem('5', 0) }">累计取号量</p>
<p class="footer-count" :style="{ color: filterItem('6', 0) }">
200次
</p>
</div>
<div class="footer-item flex flexc jcc aic">
<p>当前等待人数</p>
<p class="footer-count" :style="{ color: filterColor('主题色') }">
<p :style="{ color: filterItem('5', 0) }">当前等待人数</p>
<p class="footer-count" :style="{ color: filterItem('6', 0) }">
200人
</p>
</div>
<div class="footer-item flex flexc jcc aic">
<p>评价等待时间</p>
<p class="footer-count" :style="{ color: filterColor('主题色') }">
<p :style="{ color: filterItem('5', 0) }">评价等待时间</p>
<p class="footer-count" :style="{ color: filterItem('6', 0) }">
12分钟
</p>
</div>
......@@ -207,32 +187,58 @@ export default {
},
methods: {
// 过滤图片
filterImg(val) {
let url = "";
this.skinFieldList
.filter((v) => {
return v.fieldType === "2";
})
.forEach((v) => {
if (v.fieldName !== "" && v.fieldName === val) {
url = v.fieldValue;
}
});
return url;
// filterImg(val) {
// let url = "";
// this.skinFieldList
// .filter((v) => {
// return v.fieldType === "2";
// })
// .forEach((v) => {
// if (v.fieldName !== "" && v.fieldName === val) {
// url = v.fieldValue;
// }
// });
// return url;
// },
// // 过滤颜色
// filterColor(val) {
// let str = "";
// this.skinFieldList
// .filter((v) => {
// return v.fieldType === "1";
// })
// .forEach((v) => {
// if (v.fieldName !== "" && v.fieldName === val) {
// str = v.fieldValue;
// }
// });
// return str;
// },
// 过滤属性类型
filterItem(type, index) {
let arr = this.skinFieldList.filter((v) => {
return v.remark == type;
});
if (arr.length) {
return this.filterValueType(arr[index]);
} else {
return "";
}
},
// 过滤颜色
filterColor(val) {
let str = "";
this.skinFieldList
.filter((v) => {
return v.fieldType === "1";
})
.forEach((v) => {
if (v.fieldName !== "" && v.fieldName === val) {
str = v.fieldValue;
}
});
return str;
// 过滤属性值类型
filterValueType(info = {}) {
let value = "";
if (info.fieldType !== "" && info.fieldType === "1" && info.fieldValue) {
value = info.fieldValue;
} else if (
info.fieldType !== "" &&
info.fieldType === "2" &&
info.fieldValue
) {
value = `url(${this.api + info.fieldValue})`;
}
return value;
},
},
};
......
......@@ -3,7 +3,6 @@
<div class="show-content" v-if="skinInfo.id">
<div class="show-header">
<h2 class="show-titlw">{{ skinInfo.name }}</h2>
<p>
更新时间:<span style="margin-right: 20px">{{
skinInfo.updateTime | dateFormat
......@@ -15,6 +14,7 @@
</div>
<div class="show-skin">
<component
conponentsId="skinInfo"
:is="component"
:imageResolution="skinInfo.imageResolution"
:skinFieldList="skinInfo.skinFieldList"
......
......@@ -31,6 +31,13 @@
<a-form-model-item label="字段编码" prop="fieldCode">
<a-input placeholder="请输入字段编码" v-model="formData.fieldCode" />
</a-form-model-item>
<a-form-model-item label="字段类型" prop="remark">
<a-select v-model="formData.remark" placeholder="请选择字段类型">
<a-select-option v-for="v in attrType" :key="v.key" :value="v.key">
{{ v.label }}
</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="数据类型" prop="fieldType">
<a-radio-group name="radioGroup" v-model="formData.fieldType">
<a-radio value="1"> 颜色 </a-radio>
......@@ -44,14 +51,7 @@
</a-radio-group>
</a-form-model-item>
<a-form-model-item label="排序号" prop="fieldOrderNo">
<a-input-number v-model="formData.fieldOrderNo" :min="1" />
</a-form-model-item>
<a-form-model-item label="备注" prop="remark">
<a-textarea
v-model="formData.remark"
placeholder="请输入备注"
allow-clear
/>
<a-input-number v-model="formData.fieldOrderNo" :min="0" />
</a-form-model-item>
</a-form-model>
</a-modal>
......@@ -60,6 +60,18 @@
<script>
import { fieldSave } from "@/services/surface";
const attrType = [
{ key: "1", label: "首页背景" },
{ key: "2", label: "标题" },
{ key: "3", label: "日期时间" },
{ key: "4", label: "导航" },
{ key: "5", label: "数据标题" },
{ key: "6", label: "数据" },
{ key: "7", label: "主题色" },
{ key: "8", label: "辅助色" },
{ key: "9", label: "备案" },
{ key: "10", label: "信息面板" },
];
export default {
props: {
visibleField: {
......@@ -81,6 +93,7 @@ export default {
},
data() {
return {
attrType, // 属性类型
formData: {
templateId: undefined, // 皮肤模板id
templateName: "", // 模板名称
......@@ -91,7 +104,7 @@ export default {
fieldValue: "", // 字段值
fieldOrderNo: "", // 排序号
skinId: 0,
remark: "", // 备注
remark: undefined, // 字段类型
},
rules: {
templateId: [
......@@ -106,6 +119,9 @@ export default {
fieldType: [
{ required: true, message: "请选择数据类型", trigger: "change" },
],
remark: [
{ required: true, message: "请选择字段类型", trigger: "change" },
],
},
};
},
......@@ -129,10 +145,7 @@ export default {
this.$message.success(msg);
this.Visible = false;
this.$emit("addField");
} else {
this.$message.error(msg);
}
console.log(res.data);
}
});
},
......
......@@ -293,6 +293,15 @@ export default {
if (data.length) {
this.skinTemplate = data;
this.formData.skinFieldList = data[0].skinFieldList;
this.formData.skinFieldList.forEach((v) => {
v.fieldOrderNo = Number(v.fieldOrderNo);
if (!v.fieldOrderNo) {
v.fieldOrderNo = 1000;
}
});
this.formData.skinFieldList.sort((a, b) => {
return a.fieldOrderNo - b.fieldOrderNo;
});
}
},
// 上传函数
......@@ -322,7 +331,6 @@ export default {
file.type === "image/jpeg" ||
file.type === "image/png" ||
file.type === "image/gif";
console.log(file);
if (!isJpgOrPng) {
this.$message.error("请上传jpeg或者png图片!");
}
......@@ -375,7 +383,6 @@ export default {
this.loading = false;
this.show = false;
} else {
this.$message.error(msg);
this.loading = false;
}
});
......
......@@ -5,56 +5,46 @@
:id="conponentsId"
class="window-skin-across flex jcb aic"
:style="{
backgroundImage: filterImg('背景大图')
? `url(${api + filterImg('背景大图')})`
: '',
background: filterItem('1', 0),
}"
>
<div class="left flex flexc jcc aic">
<p class="title">异地社保</p>
<p class="code" :style="{ color: filterColor('主题色') }">A08</p>
<p class="code" :style="{ color: filterItem('7', 0) }">A08</p>
<p><img width="100" src="../../../../assets/img/lvma.png" /></p>
</div>
<div class="right flex1 flex flexc aic">
<div class="header flex aic jcc">
<img src="../../../../assets/img/logo.png" />
<div>
<h1 :style="{ color: filterColor('主题色') }">政务服务中心</h1>
<h1 :style="{ color: filterItem('2', 0) }">政务服务中心</h1>
</div>
</div>
<div
class="call-out flex aic"
:style="{ backgroundColor: filterColor('辅助色') }"
:style="{ background: filterItem('8', 0) }"
>
<div class="call-out-now flex flexc aic jcb">
<p class="call-out-title">正在办理</p>
<p
class="call-out-now-code"
:style="{ color: filterColor('主题色') }"
>
<p class="call-out-now-code" :style="{ color: filterItem('7', 0) }">
A001
</p>
</div>
<div
class="line"
:style="{
backgroundImage: `linear-gradient(to bottom,#ccc,${filterColor(
'主题色'
)} 45%,${filterColor('主题色')} 65%,#ccc 100% )`,
backgroundImage: `linear-gradient(to bottom,#ccc,${filterItem(
'7',
0
)} 45%,${filterItem('7', 0)} 65%,#ccc 100% )`,
}"
></div>
<div class="call-out-wt flex flex1 flexc aic jcb">
<p class="call-out-title">等待呼叫</p>
<p
class="call-out-wt-code"
:style="{ color: filterColor('主题色') }"
>
<p class="call-out-wt-code" :style="{ color: filterItem('7', 0) }">
A002
</p>
<p
class="call-out-wt-code"
:style="{ color: filterColor('主题色') }"
>
<p class="call-out-wt-code" :style="{ color: filterItem('7', 0) }">
A003
</p>
</div>
......@@ -65,14 +55,7 @@
<li>退休补偿金办理</li>
</ul>
<!-- 底部banner -->
<div
class="footer-banner"
:style="{
backgroundImage: filterImg('banner图')
? `url(${api + filterImg('banner图')})`
: `url(${require('../../../../assets/img/cpbg.png')})`,
}"
></div>
<div class="footer-banner">Banner展示区</div>
</div>
</div>
</div>
......@@ -106,32 +89,58 @@ export default {
},
methods: {
// 过滤图片
filterImg(val) {
let url = "";
this.skinFieldList
.filter((v) => {
return v.fieldType === "2";
})
.forEach((v) => {
if (v.fieldName !== "" && v.fieldName === val) {
url = v.fieldValue;
}
});
return url;
// filterImg(val) {
// let url = "";
// this.skinFieldList
// .filter((v) => {
// return v.fieldType === "2";
// })
// .forEach((v) => {
// if (v.fieldName !== "" && v.fieldName === val) {
// url = v.fieldValue;
// }
// });
// return url;
// },
// // 过滤颜色
// filterColor(val) {
// let str = "";
// this.skinFieldList
// .filter((v) => {
// return v.fieldType === "1";
// })
// .forEach((v) => {
// if (v.fieldName !== "" && v.fieldName === val) {
// str = v.fieldValue;
// }
// });
// return str;
// },
// 过滤属性类型
filterItem(type, index) {
let arr = this.skinFieldList.filter((v) => {
return v.remark == type;
});
if (arr.length) {
return this.filterValueType(arr[index]);
} else {
return "";
}
},
// 过滤颜色
filterColor(val) {
let str = "";
this.skinFieldList
.filter((v) => {
return v.fieldType === "1";
})
.forEach((v) => {
if (v.fieldName !== "" && v.fieldName === val) {
str = v.fieldValue;
}
});
return str;
// 过滤属性值类型
filterValueType(info = {}) {
let value = "";
if (info.fieldType !== "" && info.fieldType === "1" && info.fieldValue) {
value = info.fieldValue;
} else if (
info.fieldType !== "" &&
info.fieldType === "2" &&
info.fieldValue
) {
value = `url(${this.api + info.fieldValue})`;
}
return value;
},
},
};
......@@ -143,9 +152,9 @@ export default {
height: 562.5px;
padding: 20px;
background-image: linear-gradient(#26c5ff, #2c66ff);
background-repeat: no-repeat;
background-position: center;
background-size: cover;
background-repeat: no-repeat !important;
background-position: center !important;
background-size: cover !important;
.left {
width: 38%;
height: 100%;
......@@ -232,6 +241,10 @@ export default {
background-repeat: no-repeat;
background-position: center;
background-size: 100%;
border: 1px dashed #ccc;
font-size: 20px;
text-align: center;
line-height: 100px;
}
}
}
......
......@@ -7,6 +7,7 @@
cancel-text="取消"
@ok="hideModal"
width="820px"
:maskClosable="false"
>
<a-form-model
:model="form"
......@@ -269,12 +270,7 @@
</template>
<script>
import {
getDeptList,
getWindowList,
saveWorkman,
uploadFile,
} from "@/services/dept";
import { getWindowList, saveWorkman, uploadFile } from "@/services/dept";
import { modelList } from "@/services/basicsetFun";
import { changePhone, changeLandline } from "@/utils/validate";
export default {
......@@ -297,6 +293,12 @@ export default {
return {};
},
},
diptData: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
......@@ -357,7 +359,6 @@ export default {
{ required: false, validator: changeLandline, trigger: "blur" },
],
},
diptData: [], // 站点部门信息
windowData: [], // 部门窗口信息
};
},
......@@ -386,17 +387,7 @@ export default {
let res = await modelList({ page: 1, size: -1 });
this.modelIds = res.data.data.data;
},
// 获取部门数据
async getDeptData(obj = {}) {
let res = await getDeptList({
page: 1,
size: -1,
siteId: this.siteInfo.siteId,
...obj,
});
let { data } = res.data.data;
this.diptData = data;
},
// 部门选择
async handleDeptSelect(val, node) {
this.form.windowId = undefined;
......@@ -419,16 +410,12 @@ export default {
hideModal() {
this.$refs.formData.validate(async (valid) => {
if (valid) {
let res = await saveWorkman({
...this.form,
...this.siteInfo,
// modelIds: this.form.modelIds.join(","),
});
let res = await saveWorkman(this.form);
let { code, msg } = res.data;
if (code === 1) {
this.$message.success(msg);
this.$parent.getWorkmanData();
this.Visible = false;
this.handleClose();
} else {
this.$message.error(msg);
}
......@@ -440,12 +427,12 @@ export default {
this.form = { ...data };
this.form.loginName && this.$delete(this.form, "loginName");
this.form.loginPwd && this.$delete(this.form, "loginPwd");
this.editWindow(data.deptId);
// this.editWindow(data.deptId);
},
// 关闭对话框
handleClose() {
this.Visible = false;
this.$refs.formData.resetFields();
this.Visible = false;
},
// 照片上传
async uploadImg(info) {
......
......@@ -7,6 +7,7 @@
cancel-text="取消"
@ok="hideModal"
width="820px"
:maskClosable="false"
>
<a-form-model
:model="form"
......@@ -318,12 +319,7 @@
<script>
import { changeAccount, changePassWord } from "@/utils/validate";
import {
getDeptList,
getWindowList,
saveWorkman,
uploadFile,
} from "@/services/dept";
import { getWindowList, saveWorkman, uploadFile } from "@/services/dept";
import { modelList } from "@/services/basicsetFun";
import { changePhone, changeLandline } from "@/utils/validate";
export default {
......@@ -346,6 +342,12 @@ export default {
return {};
},
},
diptData: {
type: Array,
default: () => {
return [];
},
},
},
data() {
return {
......@@ -414,7 +416,6 @@ export default {
{ required: false, validator: changeLandline, trigger: "blur" },
],
},
diptData: [], // 站点部门信息
windowData: [], // 部门窗口信息
};
},
......@@ -442,17 +443,7 @@ export default {
let res = await modelList({ page: 1, size: -1 });
this.modelIds = res.data.data.data;
},
// 获取部门数据
async getDeptData(obj = {}) {
let res = await getDeptList({
page: 1,
size: -1,
siteId: this.siteInfo.siteId,
...obj,
});
let { data } = res.data.data;
this.diptData = data;
},
// 部门选择
async handleDeptSelect(val, node) {
this.form.windowId = undefined;
......@@ -484,7 +475,7 @@ export default {
if (code === 1) {
this.$message.success(msg);
this.$parent.getWorkmanData();
this.Visible = false;
this.handleClose();
} else {
this.$message.error(msg);
}
......
......@@ -157,6 +157,7 @@
<!-- 新增工作人员 -->
<addpersonnel
ref="addpersonnel"
:diptData="deptData"
:visibleAll.sync="visibleAll"
:designationDict="designationDict"
:politicalDict="politicalDict"
......@@ -167,6 +168,7 @@
:editVisible.sync="editVisible"
:designationDict="designationDict"
:politicalDict="politicalDict"
:diptData="deptData"
></EditPersonel>
<!-- 修改密码 -->
<EditPwd ref="EditPwd" :visibleEditPwd.sync="visibleEditPwd"></EditPwd>
......@@ -290,29 +292,24 @@ export default {
created() {},
methods: {
handleClick(val) {
Object.assign(this.$data, this.$options.data());
this.siteId = val.id;
this.getDeptList({ siteId: val.id });
this.getWindowData({ siteId: val.id });
this.getWorkmanData({ siteId: val.id });
if (this.$refs.addpersonnel) {
this.$refs.addpersonnel.getSiteInfo(val);
this.$refs.addpersonnel.getDeptData({ siteId: val.id });
}
if (this.$refs.EditPersonel) {
this.$refs.EditPersonel.getSiteInfo(val);
this.$refs.EditPersonel.getDeptData({ siteId: val.id });
}
this.$refs.addpersonnel.getSiteInfo(val);
},
clickArea() {
this.siteId = "";
this.WorkmanData = [];
this.deptData = [];
this.windowData = [];
this.total = 0;
Object.assign(this.$data, this.$options.data());
},
// 获取部门
async getDeptList(obj = {}) {
let res = await getDeptList({ siteId: this.siteId, ...obj });
let res = await getDeptList({
page: 1,
size: -1,
siteId: this.siteId,
...obj,
});
let { data } = res.data.data;
this.deptData = data;
},
......@@ -406,7 +403,7 @@ export default {
async editModal(data) {
this.editVisible = true;
this.$refs.EditPersonel.onEdit(data);
this.$refs.EditPersonel.editWindow(data.deptId);
// this.$refs.EditPersonel.editWindow(data.deptId);
},
// 翻页
handlePagination(num) {
......@@ -527,7 +524,7 @@ export default {
padding-top: 10px;
width: 100%;
color: #333;
overflow: auto;
overflow-y: auto;
padding-left: 20px;
.person_message {
font-weight: 600;
......
......@@ -65,6 +65,7 @@ module.exports = {
delete: `${BASE_URL}/matter/delete`,
addMatterToSite: `${BASE_URL}/matter/addMatterToSite`,
exportExcel: `${BASE_URL}/matter/exportExcel`,
matterList: `${BASE_URL}/matter/sublist`,
},
// 事项申请材料
matterdatum: {
......
import {
sitematter,
matter,
matterdatum,
matterdatumfile,
matteraccept,
matterquestion,
mattersetbase,
matterintermediary,
matterflowlimit,
mattercharges,
} from '@/services/basicsetApi'
import {request, METHOD} from '@/utils/request'
sitematter,
matter,
matterdatum,
matterdatumfile,
matteraccept,
matterquestion,
mattersetbase,
matterintermediary,
matterflowlimit,
mattercharges,
} from "@/services/basicsetApi";
import { request, METHOD } from "@/utils/request";
/**
* 站点事项
*/
// 查询站点事项列表
export async function getSiteMatterList(data) {
return request(sitematter.list, METHOD.POST, data)
return request(sitematter.list, METHOD.POST, data);
}
// 新增站点事项
export async function addSitematter(data) {
return request(sitematter.save, METHOD.POST, data)
return request(sitematter.save, METHOD.POST, data);
}
// 从站点删除事项
export async function delSiteMatter(data) {
return request(sitematter.delete, METHOD.GET, data)
return request(sitematter.delete, METHOD.GET, data);
}
/**
......@@ -34,77 +34,79 @@ export async function delSiteMatter(data) {
*/
// 获取一体化事项列表
export async function getMatterList(data) {
return request(matter.list, METHOD.POST, data)
return request(matter.list, METHOD.POST, data);
}
// 保存/更新基础事项
export async function saveAddMatter(data) {
return request(matter.save, METHOD.POST, data)
return request(matter.save, METHOD.POST, data);
}
// 添加基础事项到站点
export async function addMatterToSite(data) {
return request(matter.addMatterToSite, METHOD.POST, data)
return request(matter.addMatterToSite, METHOD.POST, data);
}
// 删除基础事项
export async function delMatter(data) {
return request(matter.delete, METHOD.GET, data)
return request(matter.delete, METHOD.GET, data);
}
// 获取一体化事项列表(差集)
export async function getMatterListSubList(data) {
return request(matter.matterList, METHOD.POST, data);
}
/**
* 事项申请材料
*/
// 查询事项申请材料列表
export async function getMatterDatumList(data) {
return request(matterdatum.list, METHOD.POST, data)
return request(matterdatum.list, METHOD.POST, data);
}
// 保存更新事项申请材料
export async function saveMatterDatum(data) {
return request(matterdatum.save, METHOD.POST, data)
return request(matterdatum.save, METHOD.POST, data);
}
// 删除材料
export async function delMatterDatum(data) {
return request(matterdatum.delete, METHOD.GET, data)
return request(matterdatum.delete, METHOD.GET, data);
}
// 下载附件
export async function download(data,config) {
return request(matterdatumfile.exportExcel, METHOD.POST, data,config)
export async function download(data, config) {
return request(matterdatumfile.exportExcel, METHOD.POST, data, config);
}
// 删除附件
export async function delMatterdatumfile(data) {
return request(matterdatumfile.delete, METHOD.GET, data)
return request(matterdatumfile.delete, METHOD.GET, data);
}
/**
* 受理材料
* 受理材料
*/
// 查询事项受理条件列表
export async function getMatteracceptList(data) {
return request(matteraccept.list, METHOD.POST, data)
return request(matteraccept.list, METHOD.POST, data);
}
// 新增受理条件
export async function addMatteraccept(data) {
return request(matteraccept.save, METHOD.POST, data)
return request(matteraccept.save, METHOD.POST, data);
}
// 删除受理条件
export async function delMatteraccept(data) {
return request(matteraccept.delete, METHOD.GET, data)
return request(matteraccept.delete, METHOD.GET, data);
}
/**
* 常见问题
*/
// 获取常见问题列表
export async function getMatterquestion(data) {
return request(matterquestion.list, METHOD.POST, data)
return request(matterquestion.list, METHOD.POST, data);
}
// 新增问答
export async function addMatterquestion(data) {
return request(matterquestion.save, METHOD.POST, data)
return request(matterquestion.save, METHOD.POST, data);
}
// 删除问答
export async function delMatterquestion(data) {
return request(matterquestion.delete, METHOD.GET, data)
return request(matterquestion.delete, METHOD.GET, data);
}
/**
......@@ -112,15 +114,15 @@ export async function delMatterquestion(data) {
*/
// 获取依据列表
export async function getMattersetbase(data) {
return request(mattersetbase.list, METHOD.POST, data)
return request(mattersetbase.list, METHOD.POST, data);
}
// 新增依据
export async function addMattersetbase(data) {
return request(mattersetbase.save, METHOD.POST, data)
return request(mattersetbase.save, METHOD.POST, data);
}
// 删除依据
export async function delMattersetbase(data) {
return request(mattersetbase.delete, METHOD.GET, data)
return request(mattersetbase.delete, METHOD.GET, data);
}
/**
......@@ -128,7 +130,7 @@ export async function delMattersetbase(data) {
*/
// 增加中介服务
export async function addMatterintermediary(data) {
return request(matterintermediary.save, METHOD.POST, data)
return request(matterintermediary.save, METHOD.POST, data);
}
/**
......@@ -136,7 +138,7 @@ export async function addMatterintermediary(data) {
*/
// 新增办理流程
export async function addMatterflowlimit(data) {
return request(matterflowlimit.save, METHOD.POST, data)
return request(matterflowlimit.save, METHOD.POST, data);
}
/**
......@@ -144,5 +146,5 @@ export async function addMatterflowlimit(data) {
*/
// 新增收费标准
export async function addMattercharges(data) {
return request(mattercharges.save, METHOD.POST, data)
}
\ No newline at end of file
return request(mattercharges.save, METHOD.POST, data);
}
// 只能为数字验证
export function isNumber (rule, value, callback) {
var number = /^\d+$/
export function isNumber(rule, value, callback) {
var number = /^\d+$/;
if (!number.test(value)) {
callback(new Error("格式有误,只能为数字"))
callback(new Error("格式有误,只能为数字"));
} else {
callback()
callback();
}
}
// 验证流水编号
export const checkFlowNum = (rule,value,callback)=>{
let reg = /^[A-Z][a-zA-Z0-9]{3,32}$/
if(!value){
callback(new Error('请输入流水编号'))
}else if(!reg.test(value)){
callback(new Error('格式为大写字母开头,4~32位'))
}else{
callback()
export const checkFlowNum = (rule, value, callback) => {
let reg = /^[A-Z][a-zA-Z0-9]{3,32}$/;
if (!value) {
callback(new Error("请输入流水编号"));
} else if (!reg.test(value)) {
callback(new Error("格式为大写字母开头,4~32位"));
} else {
callback();
}
}
};
// 验证英文
export const checkEn = (rule,value,callback)=>{
let reg = /^[a-zA-Z]{2,15}$/
if(!value){
callback(new Error('请输入英文名称'))
}else if(!reg.test(value)){
callback(new Error('格式为字母a-z,A-Z,2~15位'))
}else{
callback()
export const checkEn = (rule, value, callback) => {
let reg = /^[0-9a-zA-Z\s]{2,40}$/;
if (!value) {
callback(new Error("请输入英文名称"));
} else if (!reg.test(value)) {
callback(new Error("格式为a-zA-Z0-9空格,2~40位"));
} else {
callback();
}
}
};
// 验证业务名称长度
export const checkBusinessName = (rule, value, callback) => {
let reg = value.length;
if (!value) {
callback(new Error("请输入业务名称"));
} else if (reg > 40) {
callback(new Error("业务名称不能超过40个字符"));
} else {
callback();
}
};
// 验证账号
export const changeAccount = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入用户名"));
callback(new Error("请输入用户名"));
} else if (!/^[a-zA-Z0-9_-]{2,16}$/.test(value)) {
callback(new Error("2到16位(字母,数字,下划线,中横线)"));
callback(new Error("2到16位(字母,数字,下划线,中横线)"));
} else {
callback();
callback();
}
};
// 验证密码
export const changePassWord = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入密码"));
callback(new Error("请输入密码"));
} else if (!/^[a-zA-Z0-9_-]{2,18}$/.test(value)) {
callback(new Error("2到18位(字母,数字,下划线,中横线)"));
callback(new Error("2到18位(字母,数字,下划线,中横线)"));
} else {
callback();
callback();
}
};
// 验证手机号码
export const changePhone = (rule, value, callback) => {
if (!value) {
// callback(new Error("请输入手机号"));
callback();
// callback(new Error("请输入手机号"));
callback();
} else if (!/^1[3-9]\d{9}$/.test(value)) {
callback(new Error("手机号码格式不正确"));
callback(new Error("手机号码格式不正确"));
} else {
callback();
callback();
}
};
// 验证座机号码
export const changeLandline = (rule, value, callback) => {
if (!value) {
// callback(new Error("请输入座机号"));
callback();
// callback(new Error("请输入座机号"));
callback();
} else if (!/^[0][1-9]{2,3}-[0-9]{5,10}$/.test(value)) {
callback(new Error("区号-电话号码"));
callback(new Error("区号-电话号码"));
} else {
callback();
callback();
}
};
// 窗口编号验证(字母加数字 数字不能大于1000)
export const changeWindowNumber = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入窗口编号"));
} else if (value.match(/\d+/g) && Math.max(...value.match(/\d+/g).map(Number)) > 1000) {
callback(new Error("数字不能大于1000"));
callback(new Error("请输入窗口编号"));
} else if (
value.match(/\d+/g) &&
Math.max(...value.match(/\d+/g).map(Number)) > 1000
) {
callback(new Error("数字不能大于1000"));
} else {
callback();
callback();
}
};
\ No newline at end of file
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment