diff --git a/admin_2/src/api/home.js b/admin_2/src/api/home.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1e0e8a6ae6803079554ceaf64c0c17c829cc7f27 100644 --- a/admin_2/src/api/home.js +++ b/admin_2/src/api/home.js @@ -0,0 +1,9 @@ +import request from "@/utils/request"; +// 鑾峰彇棣栭〉鏁版嵁 +export const getHomeData = (data) => { + return request({ + url: `/bill/login/index`, + method: "post", + data, + }); +}; diff --git a/admin_2/src/components/autoRegister/AreaTree.vue b/admin_2/src/components/autoRegister/AreaTree.vue index 10bc0d9bc0519130b0d4b9541a8e26ff9ccb5777..8604f697ac25be079760a4b01f3ea772facf250e 100644 --- a/admin_2/src/components/autoRegister/AreaTree.vue +++ b/admin_2/src/components/autoRegister/AreaTree.vue @@ -31,7 +31,9 @@ export default { children: "children", label: "label", }, - siteId: storage.get(2, "siteId"), + siteId: this.$route.params.siteId + ? this.$route.params.siteId + : storage.get(2, "siteId"), }; }, computed: { diff --git a/admin_2/src/filters/index.js b/admin_2/src/filters/index.js index 251ebf7dc819977797e5044ef3f03fbec7fe2a7a..fe48c93dcdf256e3b9c806ddf79a2157c7f62aa6 100644 --- a/admin_2/src/filters/index.js +++ b/admin_2/src/filters/index.js @@ -4,6 +4,11 @@ export function dateFormat(val) { return moment(val).format("YYYY-MM-DD HH:mm:ss"); } +// 鏃堕棿鏍煎紡 骞存湀鏃� +export function dateDayFormat(val) { + return moment(val).format("YYYY-MM-DD"); +} + // 鏃跺垎绉� export function times(val) { return moment(val).format("HH:mm:ss"); diff --git a/admin_2/src/pages/engine/QueueUpSystem.vue b/admin_2/src/pages/engine/QueueUpSystem.vue index c27ec0ec5be2fb323f49ff90a660a614b882ee00..efe6c0328d6e7815abc304254c1673d5c95689af 100644 --- a/admin_2/src/pages/engine/QueueUpSystem.vue +++ b/admin_2/src/pages/engine/QueueUpSystem.vue @@ -221,7 +221,8 @@ export default { siteId: this.siteId, ...this.hallSearch, ...this.dateForm, - hallNameList: ["涓嶅姩浜х櫥璁颁腑蹇�"], + sectionNameNotList: [""], + groupList: ["year", "month", "day"], }); console.log(res.data); // this.hallSearch.total = res.data.total diff --git a/admin_2/src/pages/engineSearch/components/Search.vue b/admin_2/src/pages/engineSearch/components/Search.vue index 5e4de6e5cb248d5f20cfa10fcd4b1aad7152d8ea..3d70a03e776904aa2188eb95d1837761ff7bd837 100644 --- a/admin_2/src/pages/engineSearch/components/Search.vue +++ b/admin_2/src/pages/engineSearch/components/Search.vue @@ -7,28 +7,7 @@ {{ v.meta.title }} </router-link> </div> - <div> - <el-form :model="form" inline ref="form"> - <el-form-item> - <el-input></el-input> - </el-form-item> - <el-form-item> - <el-input></el-input> - </el-form-item> - <el-form-item> - <el-input></el-input> - </el-form-item> - <el-form-item> - <el-input></el-input> - </el-form-item> - <el-form-item> - <el-button>妫€绱�</el-button> - </el-form-item> - <el-form-item> - <el-button @click="$router.push('/engine')">杩斿洖</el-button> - </el-form-item> - </el-form> - </div> + <div class="search-box"></div> </div> </template> @@ -79,4 +58,10 @@ export default { font-weight: 600; } } +.search-box { + height: 68px; + width: 60%; + background: #fff; + border-radius: 34px; +} </style> diff --git a/admin_2/src/pages/home/Home.vue b/admin_2/src/pages/home/Home.vue index 4e74d455fc78729c4802db015c38de53965d8ce6..00b2a13026603718ac82c595d048834a3a3acb15 100644 --- a/admin_2/src/pages/home/Home.vue +++ b/admin_2/src/pages/home/Home.vue @@ -4,12 +4,18 @@ <div class="flex h-full flex-col"> <div class="mb-[53px] flex flex-col items-center"> <div class="title mb-[28px]">鎮ㄥソ锛屾杩庝娇鐢ㄦ暟鎹粨搴撳伐浣滃彴</div> - <div class="area-total">绱鎺ュ叆绔欑偣: 64涓� (鍚尯/鍘裤€侀晣/琛楅亾)</div> + <div class="area-total"> + 绱鎺ュ叆绔欑偣: {{ homeData.totalAccessSite ?? 0 }}涓� + (鍚尯/鍘裤€侀晣/琛楅亾) + </div> </div> <div class="data-total flex justify-center"> <div class="name">绱姹囪仛鏁版嵁:锛堟潯锛�</div> <div class="flex flex-col justify-center gap-4"> - <el-statistic group-separator="," :value="8888867"></el-statistic> + <el-statistic + group-separator="," + :value="homeData.totalCount" + ></el-statistic> <div class="text-[14px] text-[#424E65]"> 鏁颁粨鏈€杩戞眹鑱氭椂闂达細2024-06-26 23:59:59 </div> @@ -56,7 +62,11 @@ <div class="flex w-full flex-col items-center"> <div class="main-title">瀵规帴绔欑偣鐭╅樀</div> <div class="area-list grid w-full grid-cols-7 gap-5"> - <AreaCard v-for="(v, i) in areaList" :key="i" :data="v"></AreaCard> + <AreaCard + v-for="v in homeData.accessList" + :key="v.id" + :data="v" + ></AreaCard> </div> </div> </div> @@ -66,6 +76,7 @@ <script> import LineEchart from "./components/LineEchart.vue"; import AreaCard from "./components/AreaCard.vue"; +import { getHomeData } from "@/api/home"; export default { components: { LineEchart, @@ -174,8 +185,20 @@ export default { img: require("@/assets/img/sanjiangxinqu.png"), }, ], + homeData: {}, }; }, + created() { + this.getHomeData(); + }, + methods: { + async getHomeData() { + let res = await getHomeData(); + if (res.data.code == 1) { + this.homeData = res.data.data; + } + }, + }, }; </script> diff --git a/admin_2/src/pages/home/components/AreaCard.vue b/admin_2/src/pages/home/components/AreaCard.vue index 838ba4e4563f8ff252b6cc7bbd303c5dc7b45c48..deb63468d7e77c01972d91a419fe5b18a021b8d4 100644 --- a/admin_2/src/pages/home/components/AreaCard.vue +++ b/admin_2/src/pages/home/components/AreaCard.vue @@ -2,27 +2,25 @@ <div :class="[ 'area-card', - data.systemList.length ? 'cursor-pointer' : 'cursor-not-allowed', - { 'is-hover': data.systemList.length }, + 'is-hover', + tag.length ? 'cursor-pointer' : 'cursor-not-allowed', ]" @click="handleClick" > <div class="banner"> - <img class="banner-img" :src="data.img" /> + <img class="banner-img" :src="data.bigPath" /> </div> <div class="content"> <!-- 瀵规帴鏃堕棿 --> <div class="w-full"> - <span class="time" v-if="data.systemList.length"> - 瀵规帴鏃堕棿锛歿{ data.date }} + <span class="time" v-if="tag.length"> + 瀵规帴鏃堕棿锛歿{ data.createTime | dateDayFormat }} </span> </div> <!-- name --> - <span class="name">{{ data.name }}</span> - <div class="flex gap-2" v-if="data.systemList.length"> - <span class="item" v-for="(v, i) in data.systemList" :key="i">{{ - v - }}</span> + <span class="name">{{ data.areaName }}</span> + <div class="flex gap-2" v-if="tag.length"> + <span class="item" v-for="(v, i) in tag" :key="i">{{ v }}</span> </div> <span class="item-2" v-else>绛夊緟瀵规帴</span> </div> @@ -42,10 +40,25 @@ export default { data() { return {}; }, + computed: { + tag() { + if (this.data.tag) { + return this.data.tag.split(","); + } else { + return []; + } + }, + }, methods: { handleClick() { - if (this.info.systemList.length) { - this.$emit("click", this.info); + if (this.tag.length) { + this.$emit("click", this.data); + this.$router.push({ + name: "queueupreport", + params: { + siteId: this.data.siteId + "", + }, + }); } }, }, diff --git a/admin_2/src/pages/market/QueueUpReport.vue b/admin_2/src/pages/market/QueueUpReport.vue index 06838f67091c19d6ccdd6d5c3150e31270a32c95..4f7def374e40080b3ef09e297265a6da1abcda28 100644 --- a/admin_2/src/pages/market/QueueUpReport.vue +++ b/admin_2/src/pages/market/QueueUpReport.vue @@ -179,7 +179,9 @@ export default { this.$moment().format("YYYY-MM-DD"), this.$moment().format("YYYY-MM-DD"), ], - siteId: storage.get(2, "siteId"), + siteId: this.$route.params.siteId + ? this.$route.params.siteId + : storage.get(2, "siteId"), }, searchForm2: { wySignin: "", // 鍙栧彿鏂瑰紡锛堢幇鍦哄彇鍙�,寰俊鍙栧彿锛� @@ -387,8 +389,8 @@ export default { let obj = { page: this.current, size: this.size, - // taketimeStart: this.searchForm.time[0], - // taketimeEnd: this.searchForm.time[1], + taketimeStart: this.searchForm.time[0], + taketimeEnd: this.searchForm.time[1], siteId: this.searchForm.siteId, }; let val = `%${this.searchForm.keyword}%`; diff --git a/admin_2/src/pages/system/access/Access.vue b/admin_2/src/pages/system/access/Access.vue index acc9de2e25a1113de3a7bca70c842187bb9d8109..731d7d4f5485462f3bb0e63d0b83221336510338 100644 --- a/admin_2/src/pages/system/access/Access.vue +++ b/admin_2/src/pages/system/access/Access.vue @@ -11,23 +11,13 @@ </div> <div slot="right"> <el-form ref="searchForm" :model="searchForm" inline> - <el-form-item prop="type"> - <el-select - size="small" - style="width: 150px" - v-model="searchForm.type" - > - <el-option label="鎸夊弬鏁板悕绉�" value="name"></el-option> - <el-option label="鎸変簩绾х粍缁�" value="secondOrganize"></el-option> - </el-select> - </el-form-item> - <el-form-item prop="keyword"> + <el-form-item prop="areaName"> <el-input size="small" - v-model="searchForm.keyword" + v-model="searchForm.areaName" style="width: 200px" class="ml10 mr10" - placeholder="璇疯緭鍏ュ叧閿瓧鎼滅储" + placeholder="璇疯緭鍏ュ尯鍩熷悕绉版悳绱�" @keyup.native.enter="handleSearch" ></el-input> </el-form-item> @@ -67,6 +57,7 @@ ref="AddAccess" :addVisible.sync="show" :title="title" + @addSuccess="getAccessList" ></AddAccess> </div> </template> @@ -107,30 +98,38 @@ export default { }, { label: "鍖哄煙缂栫爜", - prop: "firstOrganize", - align: "areaCode", + prop: "areaCode", + align: "center", }, { label: "鑳屾櫙鍥剧墖", prop: "bigPath", align: "center", + formatter: (row) => { + return ( + <el-image + src={row.bigPath} + previewSrcList={[row.bigPath]} + class="w-[50px]" + /> + ); + }, }, { label: "鍖哄煙鎺ュ叆绯荤粺", align: "center", formatter: (row) => { - if (row.accessSystemList.length) { - return row.accessSystemList.map((item) => { - return <el-tag type="info">{item.systemName}</el-tag>; + if (row.tag) { + return row.tag.split(",").map((v) => { + return ( + <el-tag type="info" class="mr-2"> + {v} + </el-tag> + ); }); } }, }, - { - label: "鏍囩", - prop: "tag", - align: "center", - }, { label: "鎺掑簭", prop: "sort", @@ -167,8 +166,7 @@ export default { }, ], searchForm: { - type: "name", - keyword: "", + areaName: "", }, tableData: [], current: 1, diff --git a/admin_2/src/pages/system/access/components/AddAccess.vue b/admin_2/src/pages/system/access/components/AddAccess.vue index 38cebbd31562edc968c3c9466df78ee6d9c11fe2..9ad556efd55f1ca25b0d0f114f31058c0c791652 100644 --- a/admin_2/src/pages/system/access/components/AddAccess.vue +++ b/admin_2/src/pages/system/access/components/AddAccess.vue @@ -1,4 +1,3 @@ -el-dialog <template> <div> <el-dialog @@ -24,6 +23,29 @@ el-dialog @change="changeArea" ></InputTree> </el-form-item> + <el-form-item label="绯荤粺鏍囩" prop="tag"> + <div class="flex gap-2"> + <el-tag + v-for="(v, i) in form.tag" + :key="i" + closable + :disable-transitions="false" + @close="handleCloseTag(v)" + > + {{ v }} + </el-tag> + <el-input + v-if="inputVisible" + v-model="inputValue" + ref="saveTagInput" + size="small" + @keyup.enter.native="handleInputConfirm" + @blur="handleInputConfirm" + > + </el-input> + <el-button v-else size="small" @click="showInput">+</el-button> + </div> + </el-form-item> <el-form-item label="鑳屾櫙鍥剧墖" prop="bigPath"> <el-upload name="file" @@ -99,6 +121,8 @@ export default { fileList: [], preview: false, filepaths: [], + inputVisible: false, + inputValue: "", form: { areaName: "", areaCode: "", @@ -110,7 +134,7 @@ export default { longitude: "", type: "", bigPath: "", - tag: "", + tag: [], sort: 99, remark: "", icon: "", @@ -143,7 +167,10 @@ export default { handleOk() { this.$refs.form.validate(async (valid) => { if (valid) { - let res = await saveAccess(this.form); + let res = await saveAccess({ + ...this.form, + tag: this.form.tag.join(","), + }); let { code, msg } = res.data; if (code === 1) { this.$message.success(msg); @@ -161,15 +188,28 @@ export default { // 缂栬緫 onEdit(row) { setTimeout(() => { + if (row.tag) { + row.tag = row.tag.split(","); + } + if (row.bigPath) { + this.fileList = [ + { + name: row.bigPath, + url: row.bigPath, + }, + ]; + } this.form = row; }, 10); }, // 閲嶇疆 handleRest() { + this.fileList = []; this.$resetForm("form"); }, // 鍏抽棴 handleClose() { + this.fileList = []; this.$resetForm("form"); this.Visible = false; }, @@ -237,6 +277,33 @@ export default { this.filepaths = [file.url]; this.preview = true; }, + handleCloseTag(tag) { + this.form.tag.splice(this.form.tag.indexOf(tag), 1); + }, + + showInput() { + if (this.form.tag.length >= 2) { + this.$message.warning("鏆傛椂鍙兘娣诲姞涓や釜绯荤粺鏍囩"); + return; + } + this.inputVisible = true; + this.$nextTick(() => { + this.$refs.saveTagInput.$refs.input.focus(); + }); + }, + + handleInputConfirm() { + let inputValue = this.inputValue; + if (inputValue) { + if (this.form.tag.includes(inputValue)) { + this.$message.warning("宸插瓨鍦ㄧ浉鍚屾爣绛�"); + return; + } + this.form.tag.push(inputValue); + } + this.inputVisible = false; + this.inputValue = ""; + }, }, }; </script> diff --git a/admin_2/src/router/index.js b/admin_2/src/router/index.js index 03f286d0eef9177881c3ee013c496742ed1111ab..1365bd372c4d60fa21ac96346f74350825e9b69f 100644 --- a/admin_2/src/router/index.js +++ b/admin_2/src/router/index.js @@ -99,6 +99,7 @@ const routes = [ { path: "/market", + name: "market", hideChildrenInMenu: true, component: () => import("@/pages/market/Market"), meta: { @@ -108,6 +109,7 @@ const routes = [ children: [ { path: "/market/queueupreport", + name: "queueupreport", hideChildrenInMenu: true, component: () => import("@/pages/market/QueueUpReport"), meta: {