Commit 2c4d3b2a authored by 郭铭瑶's avatar 郭铭瑶 🤘

小区档案-门牌幢

parent 13963b37
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<body> <body>
<div id="app"></div> <div id="app"></div>
<script src="/shanghaiwuye_gis_map_api_3.2.210914/SMap.min.js"></script> <script src="/shanghaiwuye_gis_map_api_3.2.211102/SMap.min.js"></script>
<script src="/Plugins.min.js"></script> <script src="/Plugins.min.js"></script>
<script type="module" src="/src/main.ts"></script> <script type="module" src="/src/main.ts"></script>
</body> </body>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -11,4 +11,8 @@ export default { ...@@ -11,4 +11,8 @@ export default {
BASE_URL, BASE_URL,
CONFIGS: '/service-bigscreen/public/bigscreenConfigs', // 配置 CONFIGS: '/service-bigscreen/public/bigscreenConfigs', // 配置
COMMUNITY: '/service-customkey-ddd/public/communities/v2', // 小区 COMMUNITY: '/service-customkey-ddd/public/communities/v2', // 小区
BUILDINGS: '/service-basicdatasync-ddd/public/community/buildings', // 门牌幢
BUILDING: '/service-basicdatasync-ddd/public/building/{id}', // 根据id查楼栋信息
ORDERS: '/service-documents-ddd/public/dr/check/orders', // 月查
ORDER: '/service-documents-ddd/public/dr/check/order/{id}', // 根据id查月查详情
} }
...@@ -137,7 +137,8 @@ export default defineComponent({ ...@@ -137,7 +137,8 @@ export default defineComponent({
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '../main.styl' @import '../main.styl'
.my-form .my-form
$full() width 100%
box-sizing border-box
.row .row
display flex display flex
background $table-content-bg background $table-content-bg
......
...@@ -195,7 +195,7 @@ const _hoisted_8$a = { ...@@ -195,7 +195,7 @@ const _hoisted_8$a = {
const _hoisted_9$9 = /*#__PURE__*/createTextVNode("%"); const _hoisted_9$9 = /*#__PURE__*/createTextVNode("%");
const _hoisted_10$8 = /*#__PURE__*/_withScopeId$8(() => /*#__PURE__*/createElementVNode("p", null, "完成率", -1)); const _hoisted_10$8 = /*#__PURE__*/_withScopeId$8(() => /*#__PURE__*/createElementVNode("p", null, "完成率", -1));
const _config$4 = { const _config$5 = {
name: 'A001', name: 'A001',
title: '物业', title: '物业',
row: 1, row: 1,
...@@ -208,7 +208,7 @@ const _config$4 = { ...@@ -208,7 +208,7 @@ const _config$4 = {
value: '/api2' value: '/api2'
}] }]
}; };
const __default__$f = _config$4; const __default__$f = _config$5;
function setup$f(__props) { function setup$f(__props) {
const summary = [{ const summary = [{
...@@ -285,7 +285,7 @@ var script$k = /*#__PURE__*/defineComponent({ ...__default__$f, ...@@ -285,7 +285,7 @@ var script$k = /*#__PURE__*/defineComponent({ ...__default__$f,
props: { props: {
title: { title: {
type: String, type: String,
default: _config$4.title default: _config$5.title
} }
}, },
setup: setup$f setup: setup$f
...@@ -15281,7 +15281,7 @@ var ajax$1 = { ...@@ -15281,7 +15281,7 @@ var ajax$1 = {
}; };
const _withScopeId$1 = n => (pushScopeId("data-v-ccd65352"), n = n(), popScopeId(), n); const _withScopeId$1 = n => (pushScopeId("data-v-4b280daf"), n = n(), popScopeId(), n);
const _hoisted_1$4 = /*#__PURE__*/createTextVNode(" 住宅房屋 "); const _hoisted_1$4 = /*#__PURE__*/createTextVNode(" 住宅房屋 ");
...@@ -15290,7 +15290,7 @@ const _hoisted_2$4 = /*#__PURE__*/createTextVNode(" 非居建筑 "); ...@@ -15290,7 +15290,7 @@ const _hoisted_2$4 = /*#__PURE__*/createTextVNode(" 非居建筑 ");
const _hoisted_3$4 = /*#__PURE__*/createTextVNode(" 服务主体 "); const _hoisted_3$4 = /*#__PURE__*/createTextVNode(" 服务主体 ");
const _hoisted_4$3 = /*#__PURE__*/_withScopeId$1(() => /*#__PURE__*/createElementVNode("p", null, null, -1)); const _hoisted_4$3 = /*#__PURE__*/_withScopeId$1(() => /*#__PURE__*/createElementVNode("p", null, null, -1));
const _config$3 = { const _config$4 = {
name: 'A015', name: 'A015',
title: '体征指标', title: '体征指标',
row: 1, row: 1,
...@@ -15304,7 +15304,7 @@ const _config$3 = { ...@@ -15304,7 +15304,7 @@ const _config$3 = {
api3: '/service-basicdatasync-ddd/public/propCompanies' api3: '/service-basicdatasync-ddd/public/propCompanies'
} }
}; };
const __default__$4 = _config$3; const __default__$4 = _config$4;
function setup$4(__props) { function setup$4(__props) {
const totalCommunityCount = ref(0); const totalCommunityCount = ref(0);
...@@ -15341,7 +15341,7 @@ function setup$4(__props) { ...@@ -15341,7 +15341,7 @@ function setup$4(__props) {
}]); }]);
onMounted(() => { onMounted(() => {
ajax$1.post({ ajax$1.post({
url: _config$3.apis.community, url: _config$4.apis.community,
params: { params: {
conditions: [{ conditions: [{
conditionsGroup: [] conditionsGroup: []
...@@ -15352,10 +15352,7 @@ function setup$4(__props) { ...@@ -15352,10 +15352,7 @@ function setup$4(__props) {
var _res$data, _list$type, _list$type2, _list$type3, _list$type4, _list$type5, _list$type6; var _res$data, _list$type, _list$type2, _list$type3, _list$type4, _list$type5, _list$type6;
const data = (res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.content) || []; const data = (res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.content) || [];
EventBus.emit('communityList', { EventBus.emit('communityList', data);
icon: c6,
data
});
totalCommunityCount.value = data.length; // 1商品房 2动迁房 3共有产权保障房 4售后房 5直管公房 6混合 7系统公房 8集体土地集资房 9军产 10私产 11公租房 totalCommunityCount.value = data.length; // 1商品房 2动迁房 3共有产权保障房 4售后房 5直管公房 6混合 7系统公房 8集体土地集资房 9军产 10私产 11公租房
const list = { const list = {
...@@ -15419,7 +15416,7 @@ function setup$4(__props) { ...@@ -15419,7 +15416,7 @@ function setup$4(__props) {
const nonResident = ref([]); const nonResident = ref([]);
ajax$1.get({ ajax$1.get({
url: _config$3.apis.nonResident, url: _config$4.apis.nonResident,
params: { params: {
pageSize: 9000 pageSize: 9000
} }
...@@ -15450,17 +15447,17 @@ function setup$4(__props) { ...@@ -15450,17 +15447,17 @@ function setup$4(__props) {
value: 0 value: 0
}]); }]);
Promise.all([ajax$1.get({ Promise.all([ajax$1.get({
url: _config$3.apis.api1, url: _config$4.apis.api1,
params: { params: {
sectType_in: '1' sectType_in: '1'
} }
}), ajax$1.get({ }), ajax$1.get({
url: _config$3.apis.api2, url: _config$4.apis.api2,
params: { params: {
sectType_in: '1' sectType_in: '1'
} }
}), ajax$1.get({ }), ajax$1.get({
url: _config$3.apis.api3, url: _config$4.apis.api3,
params: { params: {
sectType_in: '1', sectType_in: '1',
managedNum_desc: '1' managedNum_desc: '1'
...@@ -15534,9 +15531,9 @@ var script$4 = /*#__PURE__*/defineComponent({ ...__default__$4, ...@@ -15534,9 +15531,9 @@ var script$4 = /*#__PURE__*/defineComponent({ ...__default__$4,
var css_248z$4 = ""; var css_248z$4 = "";
styleInject(css_248z$4); styleInject(css_248z$4);
script$4.__scopeId = "data-v-ccd65352"; script$4.__scopeId = "data-v-4b280daf";
const _withScopeId = n => (pushScopeId("data-v-3c367500"), n = n(), popScopeId(), n); const _withScopeId = n => (pushScopeId("data-v-2b156870"), n = n(), popScopeId(), n);
const _hoisted_1$3 = { const _hoisted_1$3 = {
class: "wrapper" class: "wrapper"
...@@ -15583,23 +15580,67 @@ const _hoisted_15 = /*#__PURE__*/createTextVNode("物业党建"); ...@@ -15583,23 +15580,67 @@ const _hoisted_15 = /*#__PURE__*/createTextVNode("物业党建");
const _hoisted_16 = { const _hoisted_16 = {
class: "party" class: "party"
}; };
const __default__$3 = { const _config$3 = {
name: 'A016', name: 'A016',
title: '物业监管', title: '物业监管',
row: 2 row: 2,
apis: {
main: '/service-documents-ddd/public/checkOrder/operatingIndex'
}
}; };
const __default__$3 = _config$3;
function setup$3(__props) { function setup$3(__props) {
const summary = [{ onMounted(() => {
ajax$1.get({
url: _config$3.apis.main
}).then(res => {
var _res$data;
const {
alreadyCheckCount = 0,
//已开
ycRatio = 0,
//月查
rectifyRatio = 0,
//执行率
shouldCheckCount = 0,
//应开
szRatio = 0,
//双周查
zcRatio = 0 //自查
} = (res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.content) || {};
summary.value = [{
name: '房办月查',
value: ycRatio
}, {
name: '物企双周查',
value: szRatio
}, {
name: '物业日查',
value: zcRatio
}];
info.value = {
alreadyCheckCount,
rectifyRatio
};
});
});
const info = ref({
alreadyCheckCount: 0,
rectifyRatio: 0
});
const summary = ref([{
name: '房办月查', name: '房办月查',
value: 79 value: 0
}, { }, {
name: '物企双周查', name: '物企双周查',
value: 83 value: 0
}, { }, {
name: '物业日查', name: '物业日查',
value: 100 value: 0
}]; }]);
const list = ref([{ const list = ref([{
name: '续筹预警', name: '续筹预警',
value: 47520 value: 47520
...@@ -15687,23 +15728,24 @@ function setup$3(__props) { ...@@ -15687,23 +15728,24 @@ function setup$3(__props) {
return openBlock(), createBlock(_component_m_card, { return openBlock(), createBlock(_component_m_card, {
title: "物业监管" title: "物业监管"
}, { }, {
default: withCtx(() => [createElementVNode("div", _hoisted_1$3, [createElementVNode("div", _hoisted_2$3, [(openBlock(), createElementBlock(Fragment, null, renderList(summary, item => { default: withCtx(() => [createElementVNode("div", _hoisted_1$3, [createElementVNode("div", _hoisted_2$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(summary.value, item => {
return createVNode(_component_m_progress, { return openBlock(), createBlock(_component_m_progress, {
key: item.name, key: item.name,
value: item.value, value: item.value,
msg: { msg: {
name: item.name, name: item.name,
value: item.value, value: item.value,
unit: '%', unit: '%',
color: '#fff' color: '#fff',
decimal: 2
}, },
color: ['rgb(36,59,86)', '#F4923E'] color: ['rgb(36,59,86)', '#F4923E']
}, null, 8, ["value", "msg", "color"]); }, null, 8, ["value", "msg", "color"]);
}), 64))]), createElementVNode("div", _hoisted_3$3, [_hoisted_4$2, createElementVNode("div", null, [createElementVNode("div", null, [createElementVNode("p", _hoisted_5$2, [createVNode(_component_m_count, { }), 128))]), createElementVNode("div", _hoisted_3$3, [_hoisted_4$2, createElementVNode("div", null, [createElementVNode("div", null, [createElementVNode("p", _hoisted_5$2, [createVNode(_component_m_count, {
value: 63 value: info.value.alreadyCheckCount
})]), _hoisted_6$2]), _hoisted_7$2, createElementVNode("div", null, [createElementVNode("p", _hoisted_8$2, [createVNode(_component_m_count, { }, null, 8, ["value"])]), _hoisted_6$2]), _hoisted_7$2, createElementVNode("div", null, [createElementVNode("p", _hoisted_8$2, [createVNode(_component_m_count, {
value: 76 value: info.value.rectifyRatio
}), _hoisted_9$1]), _hoisted_10])])])]), createVNode(_component_m_sub, { }, null, 8, ["value"]), _hoisted_9$1]), _hoisted_10])])])]), createVNode(_component_m_sub, {
addition: { addition: {
value: 1684, value: 1684,
unit: '万元' unit: '万元'
...@@ -15746,10 +15788,10 @@ var script$3 = /*#__PURE__*/defineComponent({ ...__default__$3, ...@@ -15746,10 +15788,10 @@ var script$3 = /*#__PURE__*/defineComponent({ ...__default__$3,
setup: setup$3 setup: setup$3
}); });
var css_248z$3 = ".wrapper[data-v-3c367500] {\n display: flex;\n padding-bottom: 0.04rem;\n}\n.wrapper .left[data-v-3c367500] {\n flex: 1.8;\n}\n.wrapper .right[data-v-3c367500] {\n flex: 1;\n background: rgba(70,83,97,0.4);\n border-radius: 0.04rem;\n box-shadow: 0 0.01rem 0.01rem 0 rgba(255,255,255,0.2) inset;\n box-sizing: border-box;\n margin: 0.06rem 0.06rem 0 0.1rem;\n padding: 0.06rem 0.1rem;\n}\n.wrapper .right >div[data-v-3c367500] {\n display: flex;\n align-items: center;\n margin-top: 0.1rem;\n}\n.wrapper .right >div >div[data-v-3c367500] {\n flex: 1;\n text-align: center;\n}\n.wrapper .right >div >div .count[data-v-3c367500] {\n font-size: 0.12rem;\n color: #edb872;\n font-family: DIN, 'Avenir', Helvetica, Arial, sans-serif;\n font-weight: bold;\n}\n.wrapper .right >div >div >p[data-v-3c367500] {\n color: #ccc;\n}\n.warn[data-v-3c367500] {\n background: rgba(70,83,97,0.4);\n border-radius: 0.04rem;\n box-shadow: 0 0.01rem 0.01rem 0 rgba(255,255,255,0.2) inset;\n box-sizing: border-box;\n padding: 0.05rem 0.1rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.warn >div[data-v-3c367500] {\n text-align: center;\n flex: 1;\n position: relative;\n}\n.warn >div p[data-v-3c367500] {\n color: #ccc;\n}\n.warn >div span[data-v-3c367500] {\n font-size: 0.08rem;\n margin-left: 0.05rem;\n color: #ccc;\n}\n.warn >div[data-v-3c367500]:first-child {\n flex: 1.5;\n}\n.warn >div:first-child p[data-v-3c367500] {\n font-size: 0.12rem;\n color: #fff;\n}\n.warn >div[data-v-3c367500]:last-child:before {\n content: '|';\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 0;\n}\n.chart[data-v-3c367500] {\n width: 100%;\n height: 0.8rem;\n margin-bottom: 0.03rem;\n}\n.party[data-v-3c367500] {\n display: flex;\n justify-content: space-between;\n text-align: center;\n margin-bottom: 0.04rem;\n}\n.party p[data-v-3c367500] {\n font-size: 0.09rem;\n color: #ccc;\n}\n"; var css_248z$3 = ".wrapper[data-v-2b156870] {\n display: flex;\n padding-bottom: 0.04rem;\n}\n.wrapper .left[data-v-2b156870] {\n flex: 1.8;\n}\n.wrapper .right[data-v-2b156870] {\n flex: 1;\n background: rgba(70,83,97,0.4);\n border-radius: 0.04rem;\n box-shadow: 0 0.01rem 0.01rem 0 rgba(255,255,255,0.2) inset;\n box-sizing: border-box;\n margin: 0.06rem 0.06rem 0 0.1rem;\n padding: 0.06rem 0.1rem;\n}\n.wrapper .right >div[data-v-2b156870] {\n display: flex;\n align-items: center;\n margin-top: 0.1rem;\n}\n.wrapper .right >div >div[data-v-2b156870] {\n flex: 1;\n text-align: center;\n}\n.wrapper .right >div >div .count[data-v-2b156870] {\n font-size: 0.12rem;\n color: #edb872;\n font-family: DIN, 'Avenir', Helvetica, Arial, sans-serif;\n font-weight: bold;\n}\n.wrapper .right >div >div >p[data-v-2b156870] {\n color: #ccc;\n}\n.warn[data-v-2b156870] {\n background: rgba(70,83,97,0.4);\n border-radius: 0.04rem;\n box-shadow: 0 0.01rem 0.01rem 0 rgba(255,255,255,0.2) inset;\n box-sizing: border-box;\n padding: 0.05rem 0.1rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.warn >div[data-v-2b156870] {\n text-align: center;\n flex: 1;\n position: relative;\n}\n.warn >div p[data-v-2b156870] {\n color: #ccc;\n}\n.warn >div span[data-v-2b156870] {\n font-size: 0.08rem;\n margin-left: 0.05rem;\n color: #ccc;\n}\n.warn >div[data-v-2b156870]:first-child {\n flex: 1.5;\n}\n.warn >div:first-child p[data-v-2b156870] {\n font-size: 0.12rem;\n color: #fff;\n}\n.warn >div[data-v-2b156870]:last-child:before {\n content: '|';\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 0;\n}\n.chart[data-v-2b156870] {\n width: 100%;\n height: 0.8rem;\n margin-bottom: 0.03rem;\n}\n.party[data-v-2b156870] {\n display: flex;\n justify-content: space-between;\n text-align: center;\n margin-bottom: 0.04rem;\n}\n.party p[data-v-2b156870] {\n font-size: 0.09rem;\n color: #ccc;\n}\n";
styleInject(css_248z$3); styleInject(css_248z$3);
script$3.__scopeId = "data-v-3c367500"; script$3.__scopeId = "data-v-2b156870";
var img$4 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAABACAMAAAB83JS9AAABL1BMVEUAAAAAYtQAYNEAY9YAZNoAYNEAat4AY9cAdeMAYNEAYdEAZNMAYNEAYNAAYdEAYdIAYtMAat4AYdEAYNEAYdIAYdEAYdEAYtEAYdEAZNQAZdgAaNYAYNEAYNEAYNEAYdEAYNEAYdEAYdEAYdEAYNEAYtIAYtMAiP8AYdAAYdEAYdEAYNEAYNEAYtMAYNEAYdEAdv////8AYNFJnf8AdPv9/f/k8P9rr//e7f8Adf0Abu8Abetkq/8AaeScyv8Aa+iEvP8DeP8AcvgAcfYAb/Emiv/n8v+t0v9fqf8xkP8rjf8AcPPM5P8jiP8AZ9+Qw/8Gef/1+v/t9f9Sov8MfP/7/P/X6f/A3f+32P+Wx/8TgP8AZdyNwf98uP91tf9tsf9Dmv8dhv/S5v/O5P9WpP+mEhg2AAAAMHRSTlMA/fr9/u8K/gXbhSH18oxKOg/MwJ2XaV1RKhsV6+K3rqR+d21hVyYC1dPGqm9BkzJd9676AAADZElEQVRIx62WaVfiMBSGk5ayCSgKirjvu3NzLWKL7K6guOG+z8z//w1DQEpDaameeT72nIebexPehPx/xseCG9Prw+vTs3NLy+4179iMghwqU+RMzQ76XdWLhRA9Wb2sAUct61kf4mQk2U9c3mh4GRVESnkfSvEJx6UGJfRUoRe6jOGFFVtzYBVlHWzQMhRH7ApvKZgHB7QsBsZ7mqMSPQBnMhgeJFYiKJegH1WKo9aa6FGhPyVZ6q67JcncdOFSZVmcrUKbq62cpVg3vw8F9wADUfN+rmJrQmesB0eim8Fpkzrf3pUUO7vZMXPE7lPdbg0ThjkRljVowtgNCOyx9EmK7QquSgP+zr7o0FZ3LCpw9xxM5I0dGpA84KRaXI1OeltqDKuOast9EiY13xpvyAMO6vFly90XygYIZwwz9uo9a5MGE1kc4uoMqvbqx1VPtYyRhrmieMBehaeP1v6KKtDhhvoLs7aqOC7xWEQJWcQDUS3u7Lf5tFXzvNkglkT1LzPYs1V1XORT0kT1/Gy3TcFWLWGQkBEKP+hVxTghw67U3NWpGHE4S8iqz40KdRDBGfsFO6NijJAN7FLrhVzuBODzJdfgjX89TF+kK2Ad0zaqonrCGEvVocCaVKBYuOVfCpdCquICIXNYFtWnx+Pjd4Dz3HGDQpH/xtHDLmMX4r4u8dOkO/Z6eMtyl1C8YKlK92ka6HOG99kRX2pxj71Bh+cQj6eA7Ki+sHvgPJhXrLUCNY4lJzVtVH015/gmVxOY6dPrY7HZ66E5Jca5Gg37nFQ+4d2HPcauTi3ZRIJ8xkKECxQLzXvoil0bbh4Xv8Kf57DNxdGM38r742vl9NpwNTrVjv+4EcR/WBepTnQ33Lt2DG8SI/59GkDPS/KuDh33LgcclYd/56bLgnueMUEMVkbwwLWZwRgxkQxT1aVZxoCXmFlCn+rOpNKQ5QUjq+5M68tpgbsuTavr4rVmmCIJBbOaU5TVcGqI9CY5grJ9YZ3ibJTYsTIvoU/v/aSVUVkiTiQjIfTlyyBSzVKcnIuSPkwEFURa040OMzWKOLXpJS7wb0XW0HhVe1BanxvyE9ck17D6FSXxKPkeyyGqNvNr2E++yxg+879meIB8nxjmwYMJ8gO8a1jDbfIjxkOWRt23qzg1+g/trepQHNm+xgAAAABJRU5ErkJggg=="; var img$4 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAABACAMAAAB83JS9AAABL1BMVEUAAAAAYtQAYNEAY9YAZNoAYNEAat4AY9cAdeMAYNEAYdEAZNMAYNEAYNAAYdEAYdIAYtMAat4AYdEAYNEAYdIAYdEAYdEAYtEAYdEAZNQAZdgAaNYAYNEAYNEAYNEAYdEAYNEAYdEAYdEAYdEAYNEAYtIAYtMAiP8AYdAAYdEAYdEAYNEAYNEAYtMAYNEAYdEAdv////8AYNFJnf8AdPv9/f/k8P9rr//e7f8Adf0Abu8Abetkq/8AaeScyv8Aa+iEvP8DeP8AcvgAcfYAb/Emiv/n8v+t0v9fqf8xkP8rjf8AcPPM5P8jiP8AZ9+Qw/8Gef/1+v/t9f9Sov8MfP/7/P/X6f/A3f+32P+Wx/8TgP8AZdyNwf98uP91tf9tsf9Dmv8dhv/S5v/O5P9WpP+mEhg2AAAAMHRSTlMA/fr9/u8K/gXbhSH18oxKOg/MwJ2XaV1RKhsV6+K3rqR+d21hVyYC1dPGqm9BkzJd9676AAADZElEQVRIx62WaVfiMBSGk5ayCSgKirjvu3NzLWKL7K6guOG+z8z//w1DQEpDaameeT72nIebexPehPx/xseCG9Prw+vTs3NLy+4179iMghwqU+RMzQ76XdWLhRA9Wb2sAUct61kf4mQk2U9c3mh4GRVESnkfSvEJx6UGJfRUoRe6jOGFFVtzYBVlHWzQMhRH7ApvKZgHB7QsBsZ7mqMSPQBnMhgeJFYiKJegH1WKo9aa6FGhPyVZ6q67JcncdOFSZVmcrUKbq62cpVg3vw8F9wADUfN+rmJrQmesB0eim8Fpkzrf3pUUO7vZMXPE7lPdbg0ThjkRljVowtgNCOyx9EmK7QquSgP+zr7o0FZ3LCpw9xxM5I0dGpA84KRaXI1OeltqDKuOast9EiY13xpvyAMO6vFly90XygYIZwwz9uo9a5MGE1kc4uoMqvbqx1VPtYyRhrmieMBehaeP1v6KKtDhhvoLs7aqOC7xWEQJWcQDUS3u7Lf5tFXzvNkglkT1LzPYs1V1XORT0kT1/Gy3TcFWLWGQkBEKP+hVxTghw67U3NWpGHE4S8iqz40KdRDBGfsFO6NijJAN7FLrhVzuBODzJdfgjX89TF+kK2Ad0zaqonrCGEvVocCaVKBYuOVfCpdCquICIXNYFtWnx+Pjd4Dz3HGDQpH/xtHDLmMX4r4u8dOkO/Z6eMtyl1C8YKlK92ka6HOG99kRX2pxj71Bh+cQj6eA7Ki+sHvgPJhXrLUCNY4lJzVtVH015/gmVxOY6dPrY7HZ66E5Jca5Gg37nFQ+4d2HPcauTi3ZRIJ8xkKECxQLzXvoil0bbh4Xv8Kf57DNxdGM38r742vl9NpwNTrVjv+4EcR/WBepTnQ33Lt2DG8SI/59GkDPS/KuDh33LgcclYd/56bLgnueMUEMVkbwwLWZwRgxkQxT1aVZxoCXmFlCn+rOpNKQ5QUjq+5M68tpgbsuTavr4rVmmCIJBbOaU5TVcGqI9CY5grJ9YZ3ibJTYsTIvoU/v/aSVUVkiTiQjIfTlyyBSzVKcnIuSPkwEFURa040OMzWKOLXpJS7wb0XW0HhVe1BanxvyE9ck17D6FSXxKPkeyyGqNvNr2E++yxg+879meIB8nxjmwYMJ8gO8a1jDbfIjxkOWRt23qzg1+g/trepQHNm+xgAAAABJRU5ErkJggg==";
var p1 = img$4; var p1 = img$4;
...@@ -16075,7 +16117,6 @@ function setup$1(__props) { ...@@ -16075,7 +16117,6 @@ function setup$1(__props) {
}]); }]);
const onClick = state => { const onClick = state => {
console.log('---', state);
const icon = state === '2' ? ele1 : ele2; const icon = state === '2' ? ele1 : ele2;
ajax$1.get({ ajax$1.get({
url: _config$1.apis.elevator, url: _config$1.apis.elevator,
...@@ -16131,10 +16172,10 @@ var script$1 = /*#__PURE__*/defineComponent({ ...__default__$1, ...@@ -16131,10 +16172,10 @@ var script$1 = /*#__PURE__*/defineComponent({ ...__default__$1,
setup: setup$1 setup: setup$1
}); });
var css_248z$1 = ".sum[data-v-10a6212d] {\n display: flex;\n justify-content: space-around;\n}\n.sum >div[data-v-10a6212d] {\n display: flex;\n align-items: center;\n font-size: 0.09rem;\n color: #ccc;\n cursor: pointer;\n}\n.sum >div .orange-count[data-v-10a6212d] {\n margin: 0 0.04rem 0.02rem;\n}\n.sum >div[data-v-10a6212d]:hover {\n color: #edb872;\n}\n.chart[data-v-10a6212d] {\n width: 100%;\n height: 1.5rem;\n}\n"; var css_248z$1 = ".sum[data-v-a1b5cab6] {\n display: flex;\n justify-content: space-around;\n}\n.sum >div[data-v-a1b5cab6] {\n display: flex;\n align-items: center;\n font-size: 0.09rem;\n color: #ccc;\n cursor: pointer;\n}\n.sum >div .orange-count[data-v-a1b5cab6] {\n margin: 0 0.04rem 0.02rem;\n}\n.sum >div[data-v-a1b5cab6]:hover {\n color: #edb872;\n}\n.chart[data-v-a1b5cab6] {\n width: 100%;\n height: 1.5rem;\n}\n";
styleInject(css_248z$1); styleInject(css_248z$1);
script$1.__scopeId = "data-v-10a6212d"; script$1.__scopeId = "data-v-a1b5cab6";
const _hoisted_1 = /*#__PURE__*/createTextVNode(" 住宅预销售金额 "); const _hoisted_1 = /*#__PURE__*/createTextVNode(" 住宅预销售金额 ");
......
export const switchUnitKind = (unitKind: unknown) => {
if (unitKind == '1') {
return '高层'
} else if (unitKind == '2') {
return '多层'
} else if (unitKind == '3') {
return '小高层'
} else if (unitKind == '4') {
return '联体别墅'
} else if (unitKind == '5') {
return '单体别墅'
} else {
return '暂无'
}
}
export const switchOrderState = (orderState: unknown) => {
if (orderState == '0') {
return '未整改'
} else if (orderState == '2') {
return '退回重新整改'
} else if (orderState == '5') {
return '待审核'
} else if (orderState == '7') {
return '整改中'
} else if (orderState == '9') {
return '已结案'
} else {
return '暂无'
}
}
<template> <template>
<div class="community-info"> <div class="community-info">
<m-sub>小区基本信息</m-sub> <n-menu v-model:value="curMenu" :options="menus" style="width: 1.2rem" />
<m-form <div class="content">
:template="[ <template v-if="curMenu === 1">
'stNameFrst:小区名称|stNameScnd:小区别名|addrFrst:小区地址', <m-sub>小区基本信息</m-sub>
'finishDate:竣工日期|stCnstArea:总建筑面积(㎡)|isOpen:小区封闭与否', <m-form
'hoName:房管办|streetName:街道|loopLineName:环线', :template="[
'stCspEast:小区四至范围东|getStCspWest:小区四至范围西|stCspSouth:小区四至范围南', 'stNameFrst:小区名称|stNameScnd:小区别名|addrFrst:小区地址',
'stCspNorth:小区四至范围北|stNotcsparea:四至不包括|stKindName:小区性质', 'finishDate:竣工日期|stCnstArea:总建筑面积(㎡)|isOpen:小区封闭与否',
'sectTypeName:小区类型|cspServiceTypeName:物业服务类型|totOngParks:地面停车位数量', 'hoName:房管办|streetName:街道|loopLineName:环线',
'totUngParks:地下停车位数量|landArea:占地面积(㎡)|totUnits:总门牌数', 'stCspEast:小区四至范围东|getStCspWest:小区四至范围西|stCspSouth:小区四至范围南',
'totHous:总户数||', 'stCspNorth:小区四至范围北|stNotcsparea:四至不包括|stKindName:小区性质',
]" 'sectTypeName:小区类型|cspServiceTypeName:物业服务类型|totOngParks:地面停车位数量',
:data="info" 'totUngParks:地下停车位数量|landArea:占地面积(㎡)|totUnits:总门牌数',
/> 'totHous:总户数||',
<m-sub>小区管理处信息</m-sub> ]"
<m-form :data="info"
:template="[ />
'csName:管理处名称|csAddress:办公地址|csContacter:管理处联系人', <m-sub>小区管理处信息</m-sub>
'csTel:联系人联系电话|csDayTel:日间报修电话|nightTel:夜间报修电话', <m-form
'complaintTel:物业投诉电话|csFax:管理处传真|csPostCode:管理处邮编', :template="[
]" 'csName:管理处名称|csAddress:办公地址|csContacter:管理处联系人',
:data="info" 'csTel:联系人联系电话|csDayTel:日间报修电话|nightTel:夜间报修电话',
/> 'complaintTel:物业投诉电话|csFax:管理处传真|csPostCode:管理处邮编',
<m-sub>物业企业信息</m-sub> ]"
<m-form :data="info"
:template="[ />
'cspName:物业企业名称|cspContractStartDate:合同开始日期|cspContractEndDate:合同结束日期', <m-sub>物业企业信息</m-sub>
'legalRepName:企业法人代表|cspTel:企业联系电话|cspContacter:企业联系人', <m-form
'cspAddr:办公地址||', :template="[
]" 'cspName:物业企业名称|cspContractStartDate:合同开始日期|cspContractEndDate:合同结束日期',
:data="info" 'legalRepName:企业法人代表|cspTel:企业联系电话|cspContacter:企业联系人',
/> 'cspAddr:办公地址||',
<m-sub>小区经理信息</m-sub> ]"
<m-form :data="info"
:template="[ />
'csmName:姓名|csmJobCode:上岗证号|certType:证件类型', <m-sub>小区经理信息</m-sub>
'csmJobQualification:资格证书名称|csmJobLog:资格证书编号|csmTel:固定电话', <m-form
'credentialsNo:证件号码||', :template="[
]" 'csmName:姓名|csmJobCode:上岗证号|certType:证件类型',
:data="info" 'csmJobQualification:资格证书名称|csmJobLog:资格证书编号|csmTel:固定电话',
/> 'credentialsNo:证件号码||',
<m-sub>业主大会信息</m-sub> ]"
<m-form :data="info"
:template="[ />
'hocCode:业主大会代码|hocName:名称|hocAddr:地址', <m-sub>业主大会信息</m-sub>
'electionDate:选举时间|directorName:主任|deputyDirectorName:副主任', <m-form
'commValidDate:任期|hocTerm:第几届|recordDate:业主大会备案日期', :template="[
'onwersTypeoperName:业主大会运作情况类别|onwersTransitionName:换届情况类别|conStartDate:业委会任期起始时间', 'hocCode:业主大会代码|hocName:名称|hocAddr:地址',
'conEndDate:业委会任期结束时间||', 'electionDate:选举时间|directorName:主任|deputyDirectorName:副主任',
]" 'commValidDate:任期|hocTerm:第几届|recordDate:业主大会备案日期',
:data="info" 'onwersTypeoperName:业主大会运作情况类别|onwersTransitionName:换届情况类别|conStartDate:业委会任期起始时间',
/> 'conEndDate:业委会任期结束时间||',
<m-sub>居委会信息</m-sub> ]"
<m-form :data="info"
:template="[ />
'cmtName:居委会名称|cmtAddr:居委会地址|cmtDirectorName:居委主任姓名', <m-sub>居委会信息</m-sub>
'cmtSecretaryName:居委书记姓名||', <m-form
]" :template="[
:data="info" 'cmtName:居委会名称|cmtAddr:居委会地址|cmtDirectorName:居委主任姓名',
/> 'cmtSecretaryName:居委书记姓名||',
]"
:data="info"
/>
</template>
<template v-else-if="curMenu === 2">
<template v-if="showBuildingInfo">
<n-space justify="end">
<n-button
type="primary"
ghost
size="small"
@click="showBuildingInfo = false"
>返回</n-button
>
</n-space>
<m-form
:template="[
'unitAddr:门牌地址|unitKind:属性>switchUnitKind|unitFlag:电梯标志>trueOrFalse',
'cnstArea:总面积|totUnit:总户数|uLoad:路',
'uLong:弄|uSublong:支弄|unitNo:单元号',
'useType:使用类型|projType:项目立项类型|status:状态',
'unitTotFloor:总层数|unitTotElevator:电梯数|',
]"
:data="buildingInfo"
:formatter="formatter"
/>
</template>
<template v-else>
<div class="search-bar">
<n-space align="center">
门牌幢地址:<n-input
v-model:value="searchKey"
size="small"
@keypress.enter="getBuildingList"
/>
</n-space>
<n-space>
<n-button size="small" ghost type="primary" @click="reset">
重置
</n-button>
<n-button size="small" type="primary" @click="getBuildingList">
搜索
</n-button>
</n-space>
</div>
<n-data-table
size="small"
:columns="buildingsColumn"
:data="buildingsData"
:pagination="pagination"
/>
</template>
</template>
<template v-else-if="curMenu === 3">
<n-tabs type="line" size="small">
<n-tab-pane name="1" tab="房办月查">
<template v-if="showMonthCheckInfo">
<n-space justify="end">
<n-button
type="primary"
ghost
size="small"
@click="showMonthCheckInfo = false"
>返回</n-button
>
</n-space>
<m-sub>基础信息</m-sub>
<m-form
:template="[
'community_name:小区名称|street_name:街道名称|check_time:检查时间',
'check_user_name:检查人|check_result:检查情况>switchCheckState|order_status:整改情况>switchOrderState',
'csp_name:物业公司||',
]"
:data="monthCheckInfo"
:formatter="formatter"
/>
<m-sub>检查指标</m-sub>
<n-data-table
size="small"
:columns="monthCheckInfoColumn"
:data="monthCheckInfo?.norms || []"
/>
</template>
<template v-else>
<n-data-table
size="small"
:columns="monthCheckColumn"
:data="monthCheckData"
:pagination="pagination"
/>
</template>
</n-tab-pane>
<n-tab-pane name="2" tab="小区经理自查">Hey Jude</n-tab-pane>
<n-tab-pane name="3" tab="物企双周查">七里香</n-tab-pane>
</n-tabs>
</template>
</div>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { PropType } from 'vue' import { PropType, ref, h, reactive, watch } from 'vue'
import {
NMenu,
NSpace,
NInput,
NButton,
NDataTable,
NTabs,
NTabPane,
} from 'naive-ui'
import { ajax, api } from '@/ajax'
import { switchUnitKind, switchOrderState } from '@/utils'
defineProps({ const props = defineProps({
info: { info: {
type: Object as PropType<{ [key: string]: unknown }>, type: Object as PropType<{ [key: string]: unknown }>,
default: () => ({}), default: () => ({}),
}, },
}) })
const curMenu = ref(1)
const menus = [
{ label: '概况', key: 1 },
{ label: '门牌幢', key: 2 },
{ label: '监管和履职', key: 3 },
{ label: '热线信息', key: 4 },
{ label: '维修资金', key: 5 },
]
const searchKey = ref<undefined | string>()
const showBuildingInfo = ref(false)
const buildingInfo = ref<{ [key: string]: unknown }>({})
const buildingsColumn = [
{
title: '门牌幢地址',
key: 'unitAddr',
},
{
title: '门牌属性',
key: 'unitKind',
render({ unitKind }) {
return h('span', null, {
default: () => switchUnitKind(unitKind),
})
},
},
{
title: '总户数',
key: 'totUnit',
},
{
title: '电梯数量',
key: 'unitTotElevator',
},
{
title: '建筑面积(m²)',
key: 'cnstArea',
},
{
title: '操作',
key: 'actions',
render(row) {
return h(
NButton,
{
text: true,
textColor: '#1890ff',
size: 'small',
onClick: async () => {
buildingInfo.value =
(
await ajax.get({
url: api.BUILDING.replace('{id}', row.id),
})
)?.data?.content || {}
showBuildingInfo.value = true
},
},
{ default: () => '查看' },
)
},
},
]
const buildingsData = ref<any[]>([])
const pagination = reactive({
page: 1,
pageSize: 10,
onChange: (page) => {
pagination.page = page
},
})
async function getBuildingList() {
buildingsData.value =
(
await ajax.get({
url: api.BUILDINGS,
params: {
sectId: props.info?.sectId,
unitAddr_l: searchKey.value,
pageSize: 9000,
},
})
)?.data?.content || []
}
function reset() {
searchKey.value = ''
pagination.page = 1
getBuildingList()
}
const formatter = {
trueOrFalse: (val: unknown) => (val === true ? '有' : '无'),
switchUnitKind,
switchCheckState: (checkState: unknown) => {
let result = '暂无'
if (checkState == '0') {
result = '合格'
} else if (checkState == '1') {
result = '需整改'
}
return result
},
}
const showMonthCheckInfo = ref(false)
const monthCheckInfo = ref<{ [key: string]: unknown }>({})
const monthCheckColumn = [
{
title: '小区名称',
key: 'communityName',
},
{
title: '检查事件',
key: 'checkTime',
},
{
title: '检查人',
key: 'checkPersonName',
},
{
title: '检查情况',
key: 'checkState',
render({ checkState }) {
return h('span', null, {
default: () => formatter.switchCheckState(checkState),
})
},
},
{
title: '整改情况',
key: 'orderState',
render({ orderState }) {
return h('span', null, { default: () => switchOrderState(orderState) })
},
},
{
title: '操作',
key: 'actions',
render(row) {
return h(
NButton,
{
text: true,
textColor: '#1890ff',
size: 'small',
onClick: async () => {
monthCheckInfo.value =
(
await ajax.get({
url: api.ORDER.replace('{id}', row.id),
})
)?.data?.content || {}
showMonthCheckInfo.value = true
},
},
{ default: () => '查看' },
)
},
},
]
const monthCheckInfoColumn = [
{
title: '指标名称',
key: 'norName',
},
{
title: '指标状态',
key: 'normState',
render({ normState }) {
return h('span', null, {
default: () => formatter.switchCheckState(normState),
})
},
},
]
const monthCheckData = ref<any[]>([])
watch(
() => curMenu.value,
async (menu) => {
pagination.page = 1
switch (menu) {
case 2:
showBuildingInfo.value = false
reset()
break
case 3:
monthCheckData.value =
(
await ajax.get({
url: api.ORDERS,
params: {
communityName: props.info.stNameFrst,
orderType: 1,
pageSize: 9000,
},
})
)?.data?.content || []
break
default:
break
}
},
)
</script> </script>
<style lang="stylus" scoped> <style lang="stylus" scoped>
@import '../../components/MyComponent/main.styl'
.community-info .community-info
>.my-sub display flex
width 100%
height 70vh
overflow hidden
.content
flex 1
overflow-y auto
padding-right .05rem
box-sizing border-box
.search-bar
display flex
justify-content space-between
align-items center
margin-bottom .1rem
.my-sub
margin-top .1rem margin-top .1rem
font-size .12rem font-size .12rem
padding-left .1rem padding-left .1rem
background-clip text color $yellow
-webkit-background-clip text // background-clip text !important
-webkit-text-fill-color transparent // -webkit-background-clip text !important
background-image linear-gradient(to bottom, #FFD1B2, #FF8635) // -webkit-text-fill-rowor transparent !important
// background-image linear-gradient(to bottom, #FFD1B2, #FF8635) !important
</style> </style>
...@@ -11,7 +11,7 @@ import jinganPath from '@/utils/jingan-path.js' ...@@ -11,7 +11,7 @@ import jinganPath from '@/utils/jingan-path.js'
let map: MyMap let map: MyMap
let polygonLayer: any let polygonLayer: any
defineExpose({ zoomIn, zoomOut, zoomTo, focus, addPoints, remove }) defineExpose({ zoomIn, zoomOut, zoomTo, focus, addPoints, remove, setCommunityPoints })
const emit = defineEmits(['event', 'complete']) const emit = defineEmits(['event', 'complete'])
onMounted(async () => { onMounted(async () => {
...@@ -21,6 +21,7 @@ onMounted(async () => { ...@@ -21,6 +21,7 @@ onMounted(async () => {
mode: '2D', mode: '2D',
center: [-1931.2637583608503, 4334.0159596985895], center: [-1931.2637583608503, 4334.0159596985895],
zoom: 4, zoom: 4,
zooms: [3, 10],
style: 'smap://styles/dark', style: 'smap://styles/dark',
appKey: 'DTZ49ACE32PBN73GXPF085', appKey: 'DTZ49ACE32PBN73GXPF085',
netType: 'internet', netType: 'internet',
...@@ -46,14 +47,17 @@ function onComplete() { ...@@ -46,14 +47,17 @@ function onComplete() {
color: '#ED6F30', color: '#ED6F30',
lineWidth: 2, lineWidth: 2,
}) })
map.instance.getLayer('wg_gis_xq_point').visible = false setCommunityPoints()
// eslint-disable-next-line
map.instance.setFilter('wg_gis_mpz', "HPB_NAME = '静安区'")
// eslint-disable-next-line
map.instance.setFilter('wg_gis_xq_poly', "HPB_NAME = '静安区'")
emit('complete') emit('complete')
} }
function setCommunityPoints(query = "HPB_NAME = '静安区'") {
console.log(query)
map.instance.getLayer('wg_gis_xq_point').visible = false
map.instance.setFilter('wg_gis_mpz', query)
map.instance.setFilter('wg_gis_xq_poly', query)
}
function zoomIn() { function zoomIn() {
map.zoomIn() map.zoomIn()
} }
......
...@@ -7,7 +7,12 @@ ...@@ -7,7 +7,12 @@
:options="selectOptions" :options="selectOptions"
size="small" size="small"
/> />
<n-input v-model:value="searchKey" size="small" clearable /> <n-input
v-model:value="searchKey"
size="small"
clearable
@keypress.enter="onSearch"
/>
<n-button type="primary" ghost size="small" @click="onSearch"> <n-button type="primary" ghost size="small" @click="onSearch">
搜索 搜索
</n-button> </n-button>
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
:only-one-view="onlyOneView" :only-one-view="onlyOneView"
@touch="handleMapBtnsEvents" @touch="handleMapBtnsEvents"
/> />
<m-modal v-model="showCommunityDrawer" title="小区档案" width="70%"> <m-modal v-model="showCommunityDrawer" title="小区档案" width="80%">
<CommunityInfo :info="communityDetail" /> <CommunityInfo :info="communityDetail" />
</m-modal> </m-modal>
<m-modal v-model="showElevatorDrawer" title="多层住宅电梯加装" width="70%"> <m-modal v-model="showElevatorDrawer" title="多层住宅电梯加装" width="70%">
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
<m-modal v-model="showSafetyDrawer" title="房屋安全排查结果" width="70%"> <m-modal v-model="showSafetyDrawer" title="房屋安全排查结果" width="70%">
<SafetyInfo :info="safetyDetail" /> <SafetyInfo :info="safetyDetail" />
</m-modal> </m-modal>
<m-modal v-model="showSearchModal" title="搜索"> <m-modal v-model="showSearchModal" title="搜索小区">
<SearchView @select="onSelectCommunity" /> <SearchView @select="onSelectCommunity" />
</m-modal> </m-modal>
</template> </template>
...@@ -80,6 +80,8 @@ import c3 from '@/assets/images/c3.png' ...@@ -80,6 +80,8 @@ import c3 from '@/assets/images/c3.png'
import c4 from '@/assets/images/c4.png' import c4 from '@/assets/images/c4.png'
import c5 from '@/assets/images/c5.png' import c5 from '@/assets/images/c5.png'
import c6 from '@/assets/images/c6.png' import c6 from '@/assets/images/c6.png'
import CommunityIcon from '@/assets/images/green-point.png'
import BlueOn from '@/assets/images/blue-on.gif'
const mapRef = shallowRef<any>(null) const mapRef = shallowRef<any>(null)
const { layout } = useLayout() const { layout } = useLayout()
...@@ -181,7 +183,7 @@ bus.on('communityList', (data) => { ...@@ -181,7 +183,7 @@ bus.on('communityList', (data) => {
store.commit('SET_COMMUNITY_LIST', data) store.commit('SET_COMMUNITY_LIST', data)
}) })
function onMapComplete() { function onMapComplete() {
addPoints(store.state.communityList) addPoints({ data: store.state.communityList, icon: CommunityIcon, size: 6 })
} }
function addPoints(data) { function addPoints(data) {
...@@ -219,8 +221,12 @@ const onSelectCommunity = async (data: any) => { ...@@ -219,8 +221,12 @@ const onSelectCommunity = async (data: any) => {
} else if (stKind == '04') { } else if (stKind == '04') {
icon = c6 icon = c6
} }
addPoints({ icon, data: [data] }) addPoints({ icon, data: [data], size: 40 })
showSearchModal.value = false showSearchModal.value = false
mapRef.value?.setCommunityPoints(`SECT_NAME_ = '${data.stNameFrst}'`)
mapRef.value?.focus([data.minx || data.maxx, data.miny || data.maxy], {
zoom: 9,
})
} }
// document.addEventListener('dblclick', (e) => { // document.addEventListener('dblclick', (e) => {
// console.log(e.target.attributes[0]) // console.log(e.target.attributes[0])
......
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