diff --git a/src/assets/img/shuju/command/arrow-right-green.png b/src/assets/img/shuju/command/arrow-right-green.png new file mode 100644 index 000000000..3210ed9fe Binary files /dev/null and b/src/assets/img/shuju/command/arrow-right-green.png differ diff --git a/src/assets/img/shuju/command/ico2/IS_XJC.png b/src/assets/img/shuju/command/ico2/IS_XJC.png new file mode 100644 index 000000000..5170a3b55 Binary files /dev/null and b/src/assets/img/shuju/command/ico2/IS_XJC.png differ diff --git a/src/assets/img/shuju/command/ico3/IS_XJC.png b/src/assets/img/shuju/command/ico3/IS_XJC.png new file mode 100644 index 000000000..cad05a58b Binary files /dev/null and b/src/assets/img/shuju/command/ico3/IS_XJC.png differ diff --git a/src/assets/scss/modules/shequzhili/project-info.scss b/src/assets/scss/modules/shequzhili/project-info.scss index fab73c410..ae6f55d5a 100644 --- a/src/assets/scss/modules/shequzhili/project-info.scss +++ b/src/assets/scss/modules/shequzhili/project-info.scss @@ -418,3 +418,35 @@ box-shadow:none } + +.process-form{ + margin-top:20px; + + .process-title { + margin-bottom: 25px; + margin-left: -5px; + font-size: 16px; + font-family: PingFang SC; + font-weight: bold; + color: #333; + line-height: 18px; + } + + .process-title-vis{ + color: #fff; + } +} + +.form-item::v-deep .el-form-item__label { + color: #fff; +} +.form-item { + .el-radio { + color: #fff; + } + + .el-checkbox { + color: #fff; + } +} + diff --git a/src/assets/scss/modules/visual/command.scss b/src/assets/scss/modules/visual/command.scss index d905e5ed1..d827e4cb4 100644 --- a/src/assets/scss/modules/visual/command.scss +++ b/src/assets/scss/modules/visual/command.scss @@ -63,7 +63,7 @@ .m-search { position: absolute; - z-index: 200; + z-index: 4; left: 0; right: 0; top: 30px; @@ -193,6 +193,13 @@ width: 360px; height: calc(825px - 15px); + .menu { + position: relative; + width: 100%; + margin-bottom: 20px; + // height: calc((825px - 15px - 20px) / 2); + } + .title { margin-bottom: 10px; padding: 4px 0; @@ -212,9 +219,9 @@ } } - .list { + .wrap { margin-right: -8px; - height: calc(825px - 120px); + height: calc(825px - 45px); overflow-y: auto; overflow-x: hidden; @include scrollBar; diff --git a/src/views/modules/base/collect.vue b/src/views/modules/base/collect.vue index 3d6cdb81a..0dabd1b4e 100644 --- a/src/views/modules/base/collect.vue +++ b/src/views/modules/base/collect.vue @@ -7,7 +7,7 @@ :model="fmData" class="demo-form-inline" > - - + --> + + + + - - - - - + + > + + + + + - + + + + + + + @@ -248,7 +304,7 @@
@@ -274,7 +330,7 @@ border style="width: 1060px; margin: 20px" class="resi-table" - :height="tableHeight" + :height="dialogTableHeight" > + + + +
+ {{ $t('cancel') }} + {{ $t('checkBTGBtn') }} + {{ $t('checkTGBtn') }} +
+ + + + @@ -354,10 +445,12 @@ import { requestPost } from "@/js/dai/request"; import nextTick from "dai-js/tools/nextTick"; import { mapGetters } from "vuex"; import axios from "axios"; +import roomForm from './roomForm' export default { data() { return { + agencyId: '', openSearch: false, formShow: false, @@ -381,7 +474,13 @@ export default { spanIndex: [], // 合并的行 importBtnTitle: "导入", importLoading: false, - }; + addHouseShow: false, + dialogType: 'look', // 对话框是check审核还是look查看 + relationshipOptions: [] + } + }, + components: { + roomForm }, computed: { ...mapGetters(["clientHeight", "iframeHeight"]), @@ -390,6 +489,11 @@ export default { const _h = this.clientHeight - 360; return this.$store.state.inIframe ? h : _h; }, + dialogTableHeight() { + const h = this.clientHeight - 460 + this.iframeHeigh; + const _h = this.clientHeight - 460; + return this.$store.state.inIframe ? h : _h; + }, }, watch: { timeRange(val) { @@ -402,11 +506,34 @@ export default { } }, }, - mounted() { - this.getcommunityList(); - this.getTableData(); + created () { + this.agencyId = localStorage.getItem('agencyId') + }, + mounted () { + // this.getcommunityList(); + this.getDictList() + this.getTableData() }, methods: { + async getDictList() { + const url = "/sys/dict/data/relationship" + const { data, code, msg } = await requestPost(url, { formCode: "resi_base_info" }) + + if (code === 0) { + this.relationshipOptions = [ ...data ] + } else { + this.$message.success("操作失败!") + } + }, + getRelationshipName (value) { + let label = '' + this.relationshipOptions.forEach(item => { + if (item.value == value) { + label = item.label + } + }) + return label + }, arraySpanMethod({ row, column, rowIndex, columnIndex }) { // console.log('row-----r', row) // console.log('column-----c', column) @@ -415,7 +542,9 @@ export default { columnIndex === 1 || columnIndex === 2 || columnIndex === 3 || - columnIndex === 4 + columnIndex === 4 || + columnIndex === 15 || + columnIndex === 16 ) { let index = this.spanIndex.findIndex( (item) => item.firstIndex === rowIndex @@ -493,7 +622,8 @@ export default { this.handleSearch(); }, - async handleWatch(row) { + async handleWatch(type, row) { + this.dialogType = type // this.formShow = true; await nextTick(); const url = "/epmetuser/icresicollect/detail"; @@ -506,7 +636,7 @@ export default { console.log("data----de", data); this.dataForm = { ...data, - houseType: data.houseType == "1" ? "自有" : "租住", + houseType: data.houseType == '1' ? '出租' : data.houseType == '2' ? '闲置' : data.houseType == '3' ? '未售出' : '自住' // 1:出租 0:自住 2:闲置 3:未售出 }; // this.getTableData(); this.formShow = true; @@ -552,33 +682,33 @@ export default { } }, async getTableData() { - const url = "/epmetuser/icresicollect/list"; - const { pageSize, pageNo, fmData } = this; + const url = "/epmetuser/icresicollect/list" + const { pageSize, pageNo, fmData } = this const { data, code, msg } = await requestPost(url, { pageSize, pageNo, ...fmData, - }); + }) if (code === 0) { - console.log("列表请求成功!!!!!!!!!!!!!!"); - this.total = data.total || 0; - let _i = 0; - let arr = []; + console.log("列表请求成功!!!!!!!!!!!!!!") + this.total = data.total || 0 + let _i = 0 + let arr = [] this.spanIndex = data.list && data.list.map((item, index) => { - if (index == 0) _i = 0; + if (index == 0) _i = 0 else _i = _i + data.list[index - 1].list.length; - arr.push(_i); - console.log("_i-----", _i, arr); + arr.push(_i) + // console.log("_i-----", _i, arr) // if (index === data.list.length - 1) firstIndex = _i - item.list.length return { firstIndex: _i, len: item.list.length, - }; - }); - this.tableData = data.list && this.formatArr(data.list); - console.log("tableData----0", this.spanIndex); + } + }) + this.tableData = data.list && this.formatArr(data.list) + console.log("tableData----0", this.spanIndex) } else { } }, @@ -608,6 +738,80 @@ export default { }); return res; }, + showAddHouse () { + if (this.dataForm.homeId == 'other') { + this.addHouseShow = true + this.$nextTick(() => { + this.$refs.ref_form.initForm('add', null, this.dataForm.id) + }) + } else { + this.checkHandle('2') + } + }, + // 审核提交方法 + checkHandle (type) { + const params = { + id: this.dataForm.id, + checkState: type, // 0-未审核 1-未通过 2-已通过 + checkReason: '', + buildingUnitId: this.dataForm.buildingUnitId || '', + doorName: this.dataForm.doorName || '' + } + if (type == '1') { + this.$prompt('请输入不通过的原因', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + }).then(({ value }) => { + params.checkReason = value + this.$http.post('/epmetuser/icresicollect/collectCheck', params).then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg) + } + this.formShow = false + this.getTableData() + // 调用文件下发权限接口 + // this.fileJurisdiction(params) + }).catch(() => {}) + }).catch(() => { + // 取消输入原因 + }) + } else { + this.$http.post('/epmetuser/icresicollect/collectCheck', params).then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg) + } + this.addHouseShow = false + this.formShow = false + this.getTableData() + // 调用文件下发权限接口 + // this.fileJurisdiction(params) + }).catch(() => {}) + } + }, + // 文件下发权限接口 + fileJurisdiction (params) { + this.$http.post('/pli/power/rentContractInfo/send', params).then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg) + } + this.$message({ + message: this.$t('prompt.success'), + type: 'success', + duration: 500, + onClose: () => { + this.disabledBtn = false + this.checkVisible = false + this.visible = false + this.$emit('refreshDataList') + } + }) + }).catch(() => {}) + }, + roomFormOk (e) { + this.dataForm.buildingUnitId = e.buildingUnitId + this.dataForm.doorName = e.doorName + this.checkHandle('2') + } }, }; @@ -650,4 +854,11 @@ export default { .wd50 { min-width: 200px; } +.badge { + display: block; + color: #F1F2E5; + background-color: #D7000F; + border-radius: 12px; + width: 70px; +} diff --git a/src/views/modules/base/community/communityForm.vue b/src/views/modules/base/community/communityForm.vue index 922082396..c3d8f4203 100644 --- a/src/views/modules/base/community/communityForm.vue +++ b/src/views/modules/base/community/communityForm.vue @@ -56,6 +56,15 @@ size="small" @click="handleCode">生成 + +
+ + 下载 +
补全一房一码信息 + 补全小程序小区码 8000) { + this.yhymLoading = false + this.$message({ + showClose: true, + message: msg, + duration: 0 + }) + } else { + this.yhymLoading = false + this.$message.error(msg) + } + }, + async handleEdit (row) { this.formTitle = '修改小区' this.formShow = true diff --git a/src/views/modules/base/diyInfo.vue b/src/views/modules/base/diyInfo.vue index 1f4b78ffc..aafdaa0f7 100644 --- a/src/views/modules/base/diyInfo.vue +++ b/src/views/modules/base/diyInfo.vue @@ -6,7 +6,7 @@
-
+
@@ -466,6 +466,11 @@ export default { height: calc(80vh - 120px); .left { width: 49%; + height: 100%; + .check-boxwr { + height: calc(80vh - 120px); + overflow: auto; + } } .right { flex-shrink: 0; @@ -498,7 +503,7 @@ export default { margin-top: 10px; } .left-h { - + height: 100%; ::v-deep .el-tabs__header.is-left, ::v-deep .el-tabs__nav-wrap.is-left::after { height: calc(80vh - 120px); diff --git a/src/views/modules/base/organization/organization.vue b/src/views/modules/base/organization/organization.vue index 3782d13af..b4d2f635a 100644 --- a/src/views/modules/base/organization/organization.vue +++ b/src/views/modules/base/organization/organization.vue @@ -794,6 +794,11 @@ + + + + + @@ -1009,7 +1014,9 @@ export default { agencyId: '', gridType: '', manageDistrict: '', - griId: '' + griId: '', + // 排序 + gridSort: 0, }, judgeOrgInfoLevel: [], keyWords: '', @@ -1597,6 +1604,7 @@ export default { this.modifyGridFrom.gridType = '', this.modifyGridFrom.manageDistrict = '', this.modifyGridFrom.griId = '' + }, // 社区新增弹框取消按钮 cancel () { @@ -2355,6 +2363,7 @@ export default { this.modifyGridFrom.gridType = data.gridType this.modifyGridFrom.manageDistrict = data.manageDistrict this.modifyGridFrom.griId = data.grid + this.modifyGridFrom.gridSort = data.gridSort } else { this.$message.error(msg) } @@ -2424,7 +2433,8 @@ export default { contacts: this.modifyGridFrom.contacts, mobile: this.modifyGridFrom.mobile, code: this.modifyGridFrom.code, - gridType: this.modifyGridFrom.gridType + gridType: this.modifyGridFrom.gridType, + sort:this.modifyGridFrom.gridSort } const { data, code, msg } = await requestPost(url, params) diff --git a/src/views/modules/base/roomForm.vue b/src/views/modules/base/roomForm.vue new file mode 100644 index 000000000..704fad4ff --- /dev/null +++ b/src/views/modules/base/roomForm.vue @@ -0,0 +1,425 @@ + + + + diff --git a/src/views/modules/base/visitor.vue b/src/views/modules/base/visitor.vue new file mode 100644 index 000000000..ab33ddc80 --- /dev/null +++ b/src/views/modules/base/visitor.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/src/views/modules/plugins/change/resideath.vue b/src/views/modules/plugins/change/resideath.vue index df96eb706..e5bbe954b 100644 --- a/src/views/modules/plugins/change/resideath.vue +++ b/src/views/modules/plugins/change/resideath.vue @@ -86,7 +86,7 @@ 迁入死亡人口 + class="div-table-button--detail">新增死亡人口 + - + + item.level === 1) + let level2 = nodes.filter(item => item.level === 2) + console.log('level2----1', level2) + level1.forEach(item => { + console.log('level2----2', level2) + if (item.hasChildren) { + for (let i = level2.length - 1; i >= 0; i--) { + if (level2[i].parent.value === item.value) level2.splice(i, 1) + } + } + }) + this.formData.firstIdList = level1.map(item => item.value) + this.formData.secondIdList = level2.map(item => item.value) + }, handleSelectionChange (val) { this.multipleSelection = []; val.forEach(element => { @@ -692,6 +746,23 @@ export default { this.$message.error(msg); } }, + async getCateOptions() { + const url = "/gov/issue/issueprojectcategorydict/list"; + + const { data, code, msg } = await requestPost(url, {}); + + if (code === 0) { + // this.cateOptions = data.map((item) => { + // item.subCategory.forEach((subitem) => { + // delete subitem.subCategory; + // }); + // return item; + // }); + this.cateOptions = this.deepTree(data, 'subCategory') + } else { + this.$message.error(msg); + } + }, handleSizeChange (val) { @@ -715,12 +786,27 @@ export default { startTime: '', endTime: '', status: '', + firstIdList: [], + secondIdList: [], } + this.eventTypeCheck = [] + - - // this.pageNo = 1 + this.pageNo = 1 + this.getTableData(); // this.loadTable() }, + deepTree(arr, child) { + if (Array.isArray(arr) && arr.length > 0) { + return arr.map(item => { + // if (child === 'subAgencyList') item.value = item.orgType + '-' + item.orgId + return { + ...item, + [child]: item[child] && item[child].length > 0 && this.deepTree(item[child], child) || null + } + }) + } + } }, }; @@ -729,4 +815,10 @@ export default { @import "@/assets/scss/buttonstyle.scss"; @import "@/assets/scss/modules/management/list-main.scss"; @import "@/assets/scss/modules/shequzhili/event-info.scss"; +.div_search { + .item_width_2 { + width: 200px; + } +} + diff --git a/src/views/modules/shequzhili/statics/index.vue b/src/views/modules/shequzhili/statics/index.vue new file mode 100644 index 000000000..40a9e4008 --- /dev/null +++ b/src/views/modules/shequzhili/statics/index.vue @@ -0,0 +1,466 @@ + + + + + + diff --git a/src/views/modules/shequzhili/xiangmu/cpts/project-info.vue b/src/views/modules/shequzhili/xiangmu/cpts/project-info.vue index 28e4ffcfc..191f7df75 100644 --- a/src/views/modules/shequzhili/xiangmu/cpts/project-info.vue +++ b/src/views/modules/shequzhili/xiangmu/cpts/project-info.vue @@ -26,9 +26,17 @@
+ v-if="projectInfo.departmentList.length > 0"> 当前处理部门: - {{ projectInfo.departmentNameList.join("、") }} +
+
+ {{item.departmentName+'('+ item.staffList.join("、")+')' }} + +
+
+
- -

处理

-
- - - - 处理/响应 - 结案 - 转其他机关/科室 - 退回 - - - - - - - - - - - - -
- -
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
- 关闭 - 确定 -
-
-
关闭
-
确定
- -
+
+ 关闭 + 确定 +
+
+
关闭
+
确定
- +
+
+ +
+ + + + diff --git a/src/views/modules/shequzhili/xiangmu/xiangmu-ling.vue b/src/views/modules/shequzhili/xiangmu/xiangmu-ling.vue index a9b6fe717..b208eda98 100644 --- a/src/views/modules/shequzhili/xiangmu/xiangmu-ling.vue +++ b/src/views/modules/shequzhili/xiangmu/xiangmu-ling.vue @@ -104,10 +104,10 @@ - + - + label="解决状态" + width="90" />
@@ -221,7 +234,8 @@ import { requestPost } from "@/js/dai/request"; import People from "@/views/modules/visual/basicinfo/people"; import cptCard from "@/views/modules/visual/cpts/card"; import gridMap from "@/views/modules/visual/command/cpts/map"; -import sidemenu from "@/views/modules/visual/command/cpts/sidemenu"; +import sidemenu1 from "@/views/modules/visual/command/cpts/yantai-sidemenu1"; +import sidemenu2 from "@/views/modules/visual/command/cpts/yantai-sidemenu2"; import sidemenuLeft from "@/views/modules/visual/command/cpts/sidemenu-left"; import ScreenLoading from "@/views/modules/visual/cpts/loading"; @@ -273,7 +287,8 @@ export default { cptCard, ScreenLoading, gridMap, - sidemenu, + sidemenu1, + sidemenu2, sidemenuLeft, eventInfo, serviceInfo, @@ -303,8 +318,8 @@ export default { selUserId: "", dotList: [], - categoryKeys: [], - coverageTypes: [], + categoryKeys: [[], []], + coverageTypes: [[], []], dotIcoList: { anzhibangjiao: require("@/assets/img/shuju/command/ico/anzhibangjiao.png"), @@ -392,6 +407,7 @@ export default { dotList2: [], categoryKeys2: [], coverageTypes2: [], + categoryNames2: [], dotIcoList2: { event_tdnd: require("@/assets/img/shuju/command/ico3/event_tdnd.png"), enterprise_patrol_unqualified: require("@/assets/img/shuju/command/ico3/enterprise_patrol_unqualified.png"), @@ -420,6 +436,7 @@ export default { IS_ENSURE_HOUSE: require("@/assets/img/shuju/command/ico3/IS_ENSURE_HOUSE.png"), IS_CJ: require("@/assets/img/shuju/command/ico3/IS_CJ.png"), IS_PARTY: require("@/assets/img/shuju/command/ico3/IS_PARTY.png"), + IS_XJC: require("@/assets/img/shuju/command/ico3/IS_XJC.png"), }, searchName: "", @@ -480,8 +497,11 @@ export default { }; } } else if (type == "watch-resi") { - this.toSubAgency("people", info.icResiUserId); + // this.toSubAgency("people", info.icResiUserId); this.icResiUserId = info.icResiUserId; + this.$router.push({ + path: `/main-shuju/visual-basicinfo-people/${info.icResiUserId}`, + }); // 查看居民详情 } else if (type == "watch-event") { // 查看事件 @@ -547,9 +567,40 @@ export default { this.coverageTypes2 = [obj.coverageType]; this.categoryKeys2 = [obj.categoryKey]; this.placeType2 = obj.placeType; + this.categoryNames2 = [obj.categoryName]; + console.log(obj); + }, + + handleChangeMenu1(list) { + console.log("handleChangeMenu", list); + let categoryKeys = []; + let coverageTypes = []; + list.forEach((item) => { + if (item.selected) { + coverageTypes.push(item.coverageType); + } + item.categories.forEach((subitem) => { + if (subitem.selected) { + coverageTypes.push(item.coverageType); + categoryKeys.push(subitem.categoryKey); + } + }); + + item.placeTypesInAnalysis.forEach((subitem) => { + subitem.categories.forEach((subitem2) => { + if (subitem2.selected) { + categoryKeys.push(subitem2.categoryKey); + coverageTypes.push(subitem2.coverageType); + } + }); + }); + }); + this.categoryKeys[0] = [...new Set(categoryKeys)]; + this.coverageTypes[0] = [...new Set(coverageTypes)]; + this.requestMapDot(); }, - handleChangeMenu(list) { + handleChangeMenu2(list) { console.log("handleChangeMenu", list); let categoryKeys = []; let coverageTypes = []; @@ -573,8 +624,8 @@ export default { }); }); }); - this.categoryKeys = [...new Set(categoryKeys)]; - this.coverageTypes = [...new Set(coverageTypes)]; + this.categoryKeys[1] = [...new Set(categoryKeys)]; + this.coverageTypes[1] = [...new Set(coverageTypes)]; this.requestMapDot(); }, @@ -584,8 +635,8 @@ export default { let params = { orgId: this.orgId, orgType: "agency", - coverageTypes: this.coverageTypes, - categoryKeys: this.categoryKeys, + coverageTypes: [...this.coverageTypes[0], ...this.coverageTypes[1]], + categoryKeys: [...this.categoryKeys[0], ...this.categoryKeys[1]], isPage: false, }; @@ -638,7 +689,12 @@ export default { const { data, code, msg } = await requestPost(url, params); if (code === 0) { - this.gridCountData = [...data]; + this.gridCountData = [ + ...data.map((item) => ({ + ...item, + categoryName: this.categoryNames2[0], + })), + ]; } else { this.$message.error(msg); } diff --git a/src/views/modules/visual/communityGovern/shijianchuli/event-info.vue b/src/views/modules/visual/communityGovern/shijianchuli/event-info.vue index 2aed96664..8668aad4b 100644 --- a/src/views/modules/visual/communityGovern/shijianchuli/event-info.vue +++ b/src/views/modules/visual/communityGovern/shijianchuli/event-info.vue @@ -97,13 +97,13 @@
{{ item.departmentName }}
- +
diff --git a/src/views/modules/visual/cpts/map/index.vue b/src/views/modules/visual/cpts/map/index.vue index 0c8bae15c..acd84557f 100644 --- a/src/views/modules/visual/cpts/map/index.vue +++ b/src/views/modules/visual/cpts/map/index.vue @@ -29,6 +29,7 @@ let posLayer; let circleLayer; let dotLayer; let dotBgLayer; +let dotLayer2; export default { name: "l7", @@ -559,13 +560,13 @@ export default { }, updateGrid() { - const { polygonData } = this; + const { polygonData,polygonDotData } = this; if (polygonLayer) { polygonLayer.setData(polygonData); lineLayer.setData(polygonData); - textLayer.setData(polygonData); - posLayer.setData(polygonData); - circleLayer.setData(polygonData); + textLayer.setData(polygonDotData); + posLayer.setData(polygonDotData); + circleLayer.setData(polygonDotData); } }, diff --git a/src/views/modules/visual/shundeju/controlCount.vue b/src/views/modules/visual/shundeju/controlCount.vue index 3a00ce06f..9263b8886 100644 --- a/src/views/modules/visual/shundeju/controlCount.vue +++ b/src/views/modules/visual/shundeju/controlCount.vue @@ -104,7 +104,7 @@ export default { 'min-width': '20px' }, { - 'min-width': '20px' + 'min-width': '50px' }, { 'min-width': '20px' @@ -113,7 +113,7 @@ export default { 'min-width': '210px' }, { - 'min-width': '400px', + 'min-width': '280px', 'white-space':'pre-wrap' }, { @@ -213,9 +213,17 @@ export default { if (item.gender == "0") { item.gender = '女' } else if (item.gender == "1") { - item = '男' + item.gender = '男' + } else { + item.gender = '未知' + } + + if (item.type == "0") { + item.type = '访客' + } else if (item.type == "1") { + item.type = '租客' } else { - item = '未知' + item.type = '未知' } return { ...item, diff --git a/src/views/modules/worklog/icworklog-add-or-update.vue b/src/views/modules/worklog/icworklog-add-or-update.vue new file mode 100644 index 000000000..bacf3a21e --- /dev/null +++ b/src/views/modules/worklog/icworklog-add-or-update.vue @@ -0,0 +1,404 @@ + + + + + diff --git a/src/views/modules/worklog/icworklog.vue b/src/views/modules/worklog/icworklog.vue new file mode 100644 index 000000000..aa58fd629 --- /dev/null +++ b/src/views/modules/worklog/icworklog.vue @@ -0,0 +1,362 @@ + + + + + +