From 96e692bbc9665d4740be16f75f092ff3005b9aa8 Mon Sep 17 00:00:00 2001 From: yxh <172933527@qq.com> Date: 星期三, 22 十一月 2023 15:58:24 +0800 Subject: [PATCH] Merge branch 'wulong' of http://116.62.18.175:6699/r/~yxh/smartor-web into yxh01 --- src/views/index.vue | 767 ++++++++++++++++++- src/assets/images/下载.png | 0 src/components/Assistant/index.vue | 486 ++++++++++++ src/assets/order/1.png | 0 src/assets/dashboard/bg22.png | 0 src/assets/images/cancel1.png | 0 src/assets/images/cancel.png | 0 src/assets/images/nodata.png | 0 src/assets/images/defaultImg.jpg | 0 src/assets/images/logo.3673fab5.png | 0 src/assets/images/bg2.png | 0 src/assets/order/2.png | 0 src/assets/images/logo.jpg | 0 src/assets/images/task.66b715b7.png | 0 src/assets/images/navBar.png | 0 src/assets/images/operation.4120cc58.png | 0 src/assets/images/bg.png | 0 src/assets/images/bg1.png | 0 src/assets/dashboard/bg33.png | 0 src/assets/order/3.png | 0 src/views/sfstatistics/percentage/index.vue | 120 -- src/views/patient/servefn/index.vue | 822 +++++++++++++++++++++ src/assets/dashboard/bg11.png | 0 src/assets/order/4.png | 0 src/App.vue | 26 25 files changed, 2,041 insertions(+), 180 deletions(-) diff --git a/src/App.vue b/src/App.vue index 29de49f..2bf66ab 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,6 +2,7 @@ <div id="app"> <router-view /> <theme-picker /> + <Assistant /> </div> </template> @@ -10,15 +11,22 @@ export default { name: "App", - components: { ThemePicker }, - metaInfo() { - return { - title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title, - titleTemplate: title => { - return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE - } - } - } + components: { + ThemePicker, + Assistant: () => import("./components/Assistant"), //寮傛缁勪欢鍔犺浇鏂瑰紡 + }, + metaInfo() { + return { + title: + this.$store.state.settings.dynamicTitle && + this.$store.state.settings.title, + titleTemplate: (title) => { + return title + ? `${title} - ${process.env.VUE_APP_TITLE}` + : process.env.VUE_APP_TITLE; + }, + }; + }, }; </script> <style scoped> diff --git a/src/assets/dashboard/bg11.png b/src/assets/dashboard/bg11.png new file mode 100644 index 0000000..9950171 --- /dev/null +++ b/src/assets/dashboard/bg11.png Binary files differ diff --git a/src/assets/dashboard/bg22.png b/src/assets/dashboard/bg22.png new file mode 100644 index 0000000..11f7593 --- /dev/null +++ b/src/assets/dashboard/bg22.png Binary files differ diff --git a/src/assets/dashboard/bg33.png b/src/assets/dashboard/bg33.png new file mode 100644 index 0000000..cbde6e6 --- /dev/null +++ b/src/assets/dashboard/bg33.png Binary files differ diff --git a/src/assets/images/bg.png b/src/assets/images/bg.png new file mode 100644 index 0000000..0e8f731 --- /dev/null +++ b/src/assets/images/bg.png Binary files differ diff --git a/src/assets/images/bg1.png b/src/assets/images/bg1.png new file mode 100644 index 0000000..9950171 --- /dev/null +++ b/src/assets/images/bg1.png Binary files differ diff --git a/src/assets/images/bg2.png b/src/assets/images/bg2.png new file mode 100644 index 0000000..1cb13b3 --- /dev/null +++ b/src/assets/images/bg2.png Binary files differ diff --git a/src/assets/images/cancel.png b/src/assets/images/cancel.png new file mode 100644 index 0000000..0caf6bf --- /dev/null +++ b/src/assets/images/cancel.png Binary files differ diff --git a/src/assets/images/cancel1.png b/src/assets/images/cancel1.png new file mode 100644 index 0000000..f7ce701 --- /dev/null +++ b/src/assets/images/cancel1.png Binary files differ diff --git a/src/assets/images/defaultImg.jpg b/src/assets/images/defaultImg.jpg new file mode 100644 index 0000000..edd2efb --- /dev/null +++ b/src/assets/images/defaultImg.jpg Binary files differ diff --git a/src/assets/images/logo.3673fab5.png b/src/assets/images/logo.3673fab5.png new file mode 100644 index 0000000..3a33e25 --- /dev/null +++ b/src/assets/images/logo.3673fab5.png Binary files differ diff --git a/src/assets/images/logo.jpg b/src/assets/images/logo.jpg new file mode 100644 index 0000000..f40e28c --- /dev/null +++ b/src/assets/images/logo.jpg Binary files differ diff --git a/src/assets/images/navBar.png b/src/assets/images/navBar.png new file mode 100644 index 0000000..7605467 --- /dev/null +++ b/src/assets/images/navBar.png Binary files differ diff --git a/src/assets/images/nodata.png b/src/assets/images/nodata.png new file mode 100644 index 0000000..501e295 --- /dev/null +++ b/src/assets/images/nodata.png Binary files differ diff --git a/src/assets/images/operation.4120cc58.png b/src/assets/images/operation.4120cc58.png new file mode 100644 index 0000000..62b404d --- /dev/null +++ b/src/assets/images/operation.4120cc58.png Binary files differ diff --git a/src/assets/images/task.66b715b7.png b/src/assets/images/task.66b715b7.png new file mode 100644 index 0000000..11f7593 --- /dev/null +++ b/src/assets/images/task.66b715b7.png Binary files differ diff --git "a/src/assets/images/\344\270\213\350\275\275.png" "b/src/assets/images/\344\270\213\350\275\275.png" new file mode 100644 index 0000000..9017ec7 --- /dev/null +++ "b/src/assets/images/\344\270\213\350\275\275.png" Binary files differ diff --git a/src/assets/order/1.png b/src/assets/order/1.png new file mode 100644 index 0000000..2ad69b3 --- /dev/null +++ b/src/assets/order/1.png Binary files differ diff --git a/src/assets/order/2.png b/src/assets/order/2.png new file mode 100644 index 0000000..299faef --- /dev/null +++ b/src/assets/order/2.png Binary files differ diff --git a/src/assets/order/3.png b/src/assets/order/3.png new file mode 100644 index 0000000..b524ebc --- /dev/null +++ b/src/assets/order/3.png Binary files differ diff --git a/src/assets/order/4.png b/src/assets/order/4.png new file mode 100644 index 0000000..de9e13a --- /dev/null +++ b/src/assets/order/4.png Binary files differ diff --git a/src/components/Assistant/index.vue b/src/components/Assistant/index.vue new file mode 100644 index 0000000..7328736 --- /dev/null +++ b/src/components/Assistant/index.vue @@ -0,0 +1,486 @@ +<template> + <div + ref="floatDrag" + class="float-position" + id="float-box" + :style="{ + left: left + 'px', + top: top + 'px', + right: right + 'px !important', + zIndex: zIndex, + }" + @touchmove.prevent + @mousemove.prevent + @mousedown="mouseDown" + @mouseup="mouseUp" + > + <div class="drag"> + <svg + t="1682058484158" + class="icon" + viewBox="0 0 1024 1024" + version="1.1" + xmlns="http://www.w3.org/2000/svg" + p-id="2023" + width="32" + height="32" + > + <path + d="M556.297 172.715a42.407 42.407 0 0 1 42.426 42.398l0.837 267.69c-0.118 1.703 0.63 2.737 1.408 2.737 0.63 0 1.29-0.699 1.506-2.284l37.74-208.953c3.732-20.672 21.844-36.166 42.162-36.166a40.074 40.074 0 0 1 7.136 0.64c23.064 4.164 38.391 27.562 34.217 50.587l-33.656 244.529c0 2.559 0.483 4.478 1.32 4.478 0.58 0 1.328-0.935 2.175-3.218l50.144-134.063c6.27-17.65 23.034-29.403 40.793-29.403A39.798 39.798 0 0 1 797.892 374c22.08 7.875 33.626 33.41 25.78 55.47l-87.904 287.191c-0.453 1.585-0.984 3.16-1.437 4.725l-0.187 0.591v0.128a187.031 187.031 0 0 1-177.847 129.1c-53.156 0-108.42-18.752-150.472-51-45.419-27.336-190.968-183.783-190.968-183.783-22.09-22.07-18.792-55.882 3.297-77.962 11.537-11.537 25.919-17.6 40.173-17.6 13.033 0 25.967 5.05 36.51 15.592l63.138 63.157c8.603 8.594 18.132 12.699 26.922 12.699a26.952 26.952 0 0 0 20.88-9.893c7.658-9.037 4.635-36.914 2.49-54.594l-31.668-260.259c-2.825-23.26 13.781-45.724 37.003-48.549a40.497 40.497 0 0 1 4.853-0.295c21.282 0 39.749 16.98 42.387 38.597l34.926 204.425c0.905 2.54 2.342 4.036 3.602 4.036s2.353-1.496 2.58-4.922l11.88-265.741a42.417 42.417 0 0 1 42.467-42.398m0-70.875a113.36 113.36 0 0 0-104.344 69.153c-0.246 0.57-0.482 1.152-0.718 1.732a111.234 111.234 0 0 0-90.022 10.976 113.597 113.597 0 0 0-32.415 29.207 115.23 115.23 0 0 0-19.067 38.489 113.843 113.843 0 0 0-3.465 44.68l21.36 175.77a120.842 120.842 0 0 0-69.3-21.863c-33.468 0-65.549 13.614-90.286 38.332-23.212 23.202-36.993 53.363-38.863 84.952a120.92 120.92 0 0 0 34.502 92.216c5.532 5.906 39.64 42.407 79.203 82.412 74.586 75.422 105.328 99.648 122.702 110.771 53.973 40.36 123.254 63.414 190.674 63.414A257.906 257.906 0 0 0 801.14 745.1c0.247-0.709 0.483-1.417 0.7-2.136l0.117-0.374a178.56 178.56 0 0 0 1.723-5.64l87.413-285.578a113.203 113.203 0 0 0 5.729-42.86 115.585 115.585 0 0 0-35.772-77.135 111.431 111.431 0 0 0-67.45-30.19l0.148-0.985a113.676 113.676 0 0 0-1.201-43.155 115.408 115.408 0 0 0-16.872-39.523 113.774 113.774 0 0 0-30.703-30.968 111.077 111.077 0 0 0-84.981-17.06 113.203 113.203 0 0 0-103.694-67.656z" + fill="#ffffff" + p-id="2024" + ></path> + </svg> + </div> + <div class="content" id="content" @click="handelFlex"> + <!-- <img src="../../../../assets/image/alarm.png" alt="" /> --> + <div class="label"> + <div v-if="flag">灞曞紑</div> + <div v-else>鏀惰捣</div> + </div> + <div class="item-container"> + <div + v-for="(item, index) in powerList" + :key="index" + @click.stop="activeHandle(index)" + > + <div + :class="activeIndex == index ? 'active power-item' : 'power-item'" + > + <img :src="item.path" alt="" style="width: 26px" /> + </div> + <div :class="activeIndex == index ? 'active-des des' : 'des'"> + {{ item.label }} + </div> + </div> + </div> + </div> + </div> +</template> + +<script> +export default { + name: "DragBall", + props: { + distanceRight: { + type: Number, + default: 36, + }, + distanceBottom: { + type: Number, + default: 700, + }, + isScrollHidden: { + type: Boolean, + default: false, + }, + isCanDraggable: { + type: Boolean, + default: true, + }, + zIndex: { + type: Number, + default: 50, + }, + value: { + type: String, + default: "鎮诞鐞冿紒", + }, + }, + data() { + return { + clientWidth: null, + clientHeight: null, + left: null, + top: null, + right: null, + timer: null, + currentTop: 0, + mousedownX: 0, + mousedownY: 0, + + flag: true, // 鎺у埗鎮诞妗嗘槸鍚﹀睍寮� + box: "", // 鎮诞鐞冪殑dom + activeIndex: 0, //楂樹寒鏄剧ず + powerList: [ + { + path: require("@/assets/images/涓嬭浇.png"), + label: "杩炴帴CTI", + }, + { + path: require("@/assets/images/涓嬭浇.png"), + label: "绛惧叆", + }, + { + path: require("@/assets/images/涓嬭浇.png"), + label: "绛惧嚭", + }, + { + path: require("@/assets/images/涓嬭浇.png"), + label: "缃棽", + }, + { + path: require("@/assets/images/涓嬭浇.png"), + label: "缃繖", + }, + { + path: require("@/assets/images/涓嬭浇.png"), + label: "鎷ㄥ彿", + }, + { + path: require("@/assets/images/涓嬭浇.png"), + label: "鍜ㄨ", + }, + { + path: require("@/assets/images/涓嬭浇.png"), + label: "淇濇寔", + }, + { + path: require("@/assets/images/涓嬭浇.png"), + label: "鎭㈠", + }, + ], + }; + }, + created() { + this.clientWidth = document.documentElement.clientWidth; + this.clientHeight = document.documentElement.clientHeight; + }, + mounted() { + this.isCanDraggable && + this.$nextTick(() => { + this.floatDrag = this.$refs.floatDrag; + // 鑾峰彇鍏冪礌浣嶇疆灞炴�� + this.floatDragDom = this.floatDrag.getBoundingClientRect(); + // 璁剧疆鍒濆浣嶇疆 + // this.left = this.clientWidth - this.floatDragDom.width - this.distanceRight; + this.right = 0; + this.top = + this.clientHeight - this.floatDragDom.height - this.distanceBottom; + this.initDraggable(); + }); + // this.isScrollHidden && window.addEventListener('scroll', this.handleScroll); + window.addEventListener("resize", this.handleResize); + + this.box = document.getElementById("float-box"); + }, + beforeUnmount() { + window.removeEventListener("scroll", this.handleScroll); + window.removeEventListener("resize", this.handleResize); + }, + methods: { + // 浼哥缉鎮诞鐞� + handelFlex() { + if (this.flag) { + this.buffer(this.box, "height", 700); + } else { + this.buffer(this.box, "height", 70); + } + this.flag = !this.flag; + console.log("鏄惁灞曞紑", this.flag); + }, + // 鐐瑰嚮鍝釜power + activeHandle(index) { + //鎶婃垜浠嚜瀹氫箟鐨勪笅鏍囪祴鍊� + this.activeIndex = index; + console.log("HHHH", index); + }, + // 鑾峰彇瑕佹敼鍙樺緱鏍峰紡灞炴�� + getStyleAttr(obj, attr) { + if (obj.currentStyle) { + // IE 鍜� opera + return obj.currentStyle[attr]; + } else { + return window.getComputedStyle(obj, null)[attr]; + } + }, + // 鍔ㄧ敾鍑芥暟 + buffer(eleObj, attr, target) { + // setInterval鏂瑰紡寮�鍚姩鐢� + //鍏堟竻鍚庤 + // clearInterval(eleObj.timer); + // let speed = 0 + // let begin = 0 + // //璁剧疆瀹氭椂鍣� + // eleObj.timer = setInterval(() => { + // //鑾峰彇鍔ㄧ敾灞炴�х殑鍒濆鍊� + // begin = parseInt(this.getStyleAttr(eleObj, attr)); + // speed = (target - begin) * 0.2; + // speed = target > begin ? Math.ceil(speed) : Math.floor(speed); + // eleObj.style[attr] = begin + speed + "px"; + // if (begin === target) { + // clearInterval(eleObj.timer); + // } + // }, 20); + // cancelAnimationFrame寮�鍚姩鐢� + // 鍏堟竻鍚庤 + cancelAnimationFrame(eleObj.timer); + let speed = 0; + let begin = 0; + let _this = this; + eleObj.timer = requestAnimationFrame(function fn() { + begin = parseInt(_this.getStyleAttr(eleObj, attr)); + // 鍔ㄧ敾閫熷害 + speed = (target - begin) * 0.9; + speed = target > begin ? Math.ceil(speed) : Math.floor(speed); + eleObj.style[attr] = begin + speed + "px"; + eleObj.timer = requestAnimationFrame(fn); + if (begin === target) { + cancelAnimationFrame(eleObj.timer); + } + }); + }, + /** + * 绐楀彛resize鐩戝惉 + */ + handleResize() { + // this.clientWidth = document.documentElement.clientWidth; + // this.clientHeight = document.documentElement.clientHeight; + // console.log(window.innerWidth); + // console.log(document.documentElement.clientWidth); + + this.checkDraggablePosition(); + }, + /** + * 鍒濆鍖杁raggable + */ + initDraggable() { + this.floatDrag.addEventListener("touchstart", this.toucheStart); + this.floatDrag.addEventListener("touchmove", (e) => this.touchMove(e)); + this.floatDrag.addEventListener("touchend", this.touchEnd); + }, + mouseDown(e) { + const event = e || window.event; + this.mousedownX = event.screenX; + this.mousedownY = event.screenY; + const that = this; + let floatDragWidth = this.floatDragDom.width / 2; + let floatDragHeight = this.floatDragDom.height / 2; + if (event.preventDefault) { + event.preventDefault(); + } + this.canClick = false; + this.floatDrag.style.transition = "none"; + document.onmousemove = function (e) { + var event = e || window.event; + that.left = event.clientX - floatDragWidth; + that.top = event.clientY - floatDragHeight; + if (that.left < 0) that.left = 0; + if (that.top < 0) that.top = 0; + // 榧犳爣绉诲嚭鍙鍖哄煙鍚庣粰鎸夐挳杩樺師 + if ( + event.clientY < 0 || + event.clientY > Number(this.clientHeight) || + event.clientX > Number(this.clientWidth) || + event.clientX < 0 + ) { + this.right = 0; + this.top = + this.clientHeight - this.floatDragDom.height - this.distanceBottom; + document.onmousemove = null; + this.floatDrag.style.transition = "all 0.3s"; + return; + } + if ( + that.left >= + document.documentElement.clientWidth - floatDragWidth * 2 + ) { + that.left = document.documentElement.clientWidth - floatDragWidth * 2; + } + if (that.top >= that.clientHeight - floatDragHeight * 2) { + that.top = that.clientHeight - floatDragHeight * 2; + } + }; + }, + mouseUp(e) { + const event = e || window.event; + //鍒ゆ柇鍙槸鍗曠函鐨勭偣鍑伙紝娌℃湁鎷栨嫿 + if ( + this.mousedownY == event.screenY && + this.mousedownX == event.screenX + ) { + this.$emit("handlepaly"); + } + document.onmousemove = null; + this.checkDraggablePosition(); + this.floatDrag.style.transition = "all 0.3s"; + }, + toucheStart() { + this.canClick = false; + this.floatDrag.style.transition = "none"; + }, + touchMove(e) { + this.canClick = true; + if (e.targetTouches.length === 1) { + // 鍗曟寚鎷栧姩 + let touch = event.targetTouches[0]; + this.left = touch.clientX - this.floatDragDom.width / 2; + this.top = touch.clientY - this.floatDragDom.height / 2; + } + }, + touchEnd() { + if (!this.canClick) return; // 瑙e喅鐐瑰嚮浜嬩欢鍜宼ouch浜嬩欢鍐茬獊鐨勯棶棰� + this.floatDrag.style.transition = "all 0.3s"; + this.checkDraggablePosition(); + }, + /** + * 鍒ゆ柇鍏冪礌鏄剧ず浣嶇疆 + * 鍦ㄧ獥鍙f敼鍙樺拰move end鏃惰皟鐢� + */ + checkDraggablePosition() { + this.clientWidth = document.documentElement.clientWidth; + this.clientHeight = document.documentElement.clientHeight; + if (this.left + this.floatDragDom.width / 2 >= this.clientWidth / 2) { + // 鍒ゆ柇浣嶇疆鏄線宸﹀線鍙虫粦鍔� + this.left = this.clientWidth - this.floatDragDom.width; + } else { + this.left = 0; + } + if (this.top < 0) { + // 鍒ゆ柇鏄惁瓒呭嚭灞忓箷涓婃部 + this.top = 0; + } + if (this.top + this.floatDragDom.height >= this.clientHeight) { + // 鍒ゆ柇鏄惁瓒呭嚭灞忓箷涓嬫部 + this.top = this.clientHeight - this.floatDragDom.height; + } + }, + }, +}; +</script> +<style> +html, +body { + overflow: hidden; +} +</style> +<style scoped lang="scss"> +.float-position { + position: fixed; + z-index: 10003 !important; + left: 0; + top: 20%; + width: 70px; + height: 70px; + border-radius: 32px; + cursor: pointer; + overflow: hidden; + user-select: none; + + display: block; + background: black; + background: -webkit-radial-gradient(100px 100px, circle, #5788fe, #292929); + // background: -moz-radial-gradient(100px 100px, circle, #35a1a1, #000);Firefox 娴忚鍣ㄧ殑瀹炵幇 + // background: radial-gradient(100px 100px, circle, #35a1a1, #000);鏍囧噯 HTML5 灞炴�� + margin: 0; + .drag { + width: 70px; + height: 35px; + // background: #f2e96a; + text-align: center; + line-height: 35px; + border-bottom: 1px solid #fff; + } + .content { + width: 70px; + height: 35px; + // background: #716af2; + .label { + width: 70px; + height: 35px; + text-align: center; + line-height: 35px; + color: white; + } + .label:hover { + color: rgb(19, 217, 243); + transition: all 0.5; + } + + .item-container { + margin-top: 10px; + width: 70px; + height: 600px; + display: flex; + justify-content: space-between; + align-items: center; + flex-direction: column; + + .power-item { + width: 40px; + height: 40px; + border-radius: 50%; + background-color: #69707a; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + } + .des { + width: 40px; + text-align: center; + margin-bottom: 5px; + font-size: 10px; + color: #fff; + } + } + } + + .close { + width: 20px; + height: 20px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #fff; + background: rgba(0, 0, 0, 0.6); + position: absolute; + right: -10px; + top: -12px; + cursor: pointer; + } +} + +.cart { + border-radius: 50%; + width: 5em; + height: 5em; + display: flex; + align-items: center; + justify-content: center; +} + +.header-notice { + display: inline-block; + transition: all 0.3s; + + span { + vertical-align: initial; + } + + .notice-badge { + color: inherit; + + .header-notice-icon { + font-size: 16px; + padding: 4px; + } + } +} + +.drag-ball .drag-content { + overflow-wrap: break-word; + font-size: 14px; + color: #fff; + letter-spacing: 2px; +} + +.active { + background-color: #1a1818 !important; +} +.active-des { + color: #1a1818 !important; + font-weight: bold !important; +} +</style> diff --git a/src/views/index.vue b/src/views/index.vue index 26519f3..d44d565 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,87 +1,724 @@ <template> - <div class="app-container home"> - + <div id="home"> + <div class="home" style="margin-top: 40px; margin-left: 20px"> + <!-- 澶撮儴涓や釜 --> + <el-row :gutter="20"> + <el-col :span="10"> + <!-- 灏辫瘖缁熻鐩掑瓙 --> + <div class="grid-content bg-purple headerBox bgc1"> + <div class="title"> + 灏辫瘖缁熻 + <span>{{ endatd }} ~ {{ statd }}</span> + </div> + <el-row :gutter="20"> + <el-col :span="6"> + <div class="home-user-task-stats"> + <p>{{ 12322 }}</p> + </div> + <div class="text-color2"> + <p>灏辫瘖鎬绘暟锛堜釜锛�</p> + </div> + </el-col> + <el-col :span="6"> + <div class="home-user-task-stats"> + <p>{{ 1231 }}</p> + <div class="text-color2"> + <p>鍦ㄩ櫌鎬绘暟锛堜汉锛�</p> + </div> + </div> + </el-col> + <el-col :span="6"> + <div class="home-user-task-stats"> + <p>{{ ticketStatistics.progressTotal || "0" }}</p> + <div class="text-color2"> + <p>绂婚櫌鎬绘暟锛堜汉锛�</p> + </div> + </div> + </el-col> + <el-col :span="6"> + <div class="home-user-task-stats"> + <p>{{ 12 }}</p> + <div class="text-color2"> + <p>鎶曡瘔鎬绘暟</p> + </div> + </div> + </el-col> + </el-row> + </div> + </el-col> + <el-col :span="7"> + <div class="grid-content bg-purple headerBox bgc2"> + <div class="title"> + 鍖诲姟浜哄憳鏁伴噺 + <span>{{ endatd }} ~ {{ statd }}</span> + </div> + <el-row :gutter="20"> + <el-col :span="12"> + <div class="home-user-task-stats"> + <p style="color: red">{{ 3453 }}</p> + </div> + <div class="text-color2"> + <p>鍖诲笀</p> + </div> + </el-col> + <el-col :span="12"> + <div class="home-user-task-stats"> + <p style="color: red">{{ 4213 }}</p> + <div class="text-color2"> + <p>鎶ゅ+</p> + </div> + </div> + </el-col> + </el-row> + </div> + </el-col> + </el-row> + <!-- 涓棿鍜屽彸杈� --> + <el-row :gutter="20"> + <el-col :span="17"> + <!-- echars鏁版嵁鍙鍖� --> + <div class="grid-content bg-purple" style="min-height: 365px"> + <div class="title"> + 灏辫瘖缁熻 + <span>{{ endatd }} ~ {{ statd }}</span> + <el-radio-group + v-model="radio1" + size="mini" + style="margin-left: 390px" + @change="changes" + > + <el-radio-button label="鍛�" @click="dyat = 7"></el-radio-button> + <el-radio-button + label="鏈�" + @click="dyat = 30" + ></el-radio-button> + <el-radio-button + label="骞�" + @click="dyat = 360" + ></el-radio-button> + </el-radio-group> + </div> + <!-- 涓棿echars --> + <div class="boxEchars"> + <div class="echars1" id="echars"></div> + <div class="echars2" id="echars2"></div> + </div> + </div> + </el-col> + <!-- 涓棿鍜屽彸杈� --> + <el-col :span="6" class="aside"> + <div + class="grid-content bg-purple" + style="height: 560px; margin-top: -180px" + > + <div class="title"> + 鎺ヨ瘖鎺掕 + <span>{{ endatd }} ~ {{ statd }}</span> + </div> + <el-table style="width: 100%" :data="SkuTop"> + <template v-for="(item, index) in SkuTop"></template> + <el-table-column + prop="order" + width="30" + style="background: url(~@/assets/order/4.png)" + type="index" + + ></el-table-column> + <el-table-column + prop="skuName" + width="124" + class-name="name" + + ></el-table-column> + <el-table-column + prop="count" + class-name="count" + + ></el-table-column> + </el-table> + </div> + </el-col> + </el-row> + <!-- 搴曢儴涓�涓� --> + <el-row :gutter="20" style="margin-bottom: 20px"> + <el-col :span="13"> + <div class="grid-content bg-purple" style="min-height: 300px"> + <div class="title"> + 鍚堜綔鍟嗙偣浣嶆暟Top5 + <span class="el-icon-s-unfold moreIcon"></span> + </div> + <div class="cooperate"> + <!-- 鍚堜綔鍖哄煙 --> + <div class="pieChart" id="pieCharts"></div> + <div class="Points"> + <p>{{ 122 }}</p> + <span>鐐逛綅鏁�</span> + <p>{{ 18 }}</p> + <span>鍚堜綔鍟�</span> + </div> + </div> + </div> + </el-col> + <el-col :span="10"> + <div class="grid-content bg-purple" style="min-height: 300px"> + <div class="title"> + 寮傚父璁惧鐩戞帶 + <span class="el-icon-s-unfold moreIcon2"></span> + </div> + <div class="empenty"></div> + </div> + </el-col> + </el-row> + </div> </div> </template> <script> +// import { +// getUserWork, +// getregionCollect, +// getregionOrderCount, +// getregionAmountCollect, +// getNodeCount, +// getPrtnerCount, +// getnodeCollect, +// getSkuTop, +// getOrderAmount, +// } from "@/api/home"; +import dayjs from "dayjs"; + export default { - name: "Index", + name: "home", data() { return { - // 鐗堟湰鍙� - version: "3.8.5" + NodeCount: "", + PrtnerCount: "", + NodeCount: "", + radio1: "鍛�", + ticketStatistics: {}, + order: "", + Count: "", + datatni: [], + series: [], + tableData: [], + nodeCollect: [], + SkuTop: [], + cylinderSeries: [], + cylinderXAxis: [], + dyat: 30, }; }, + + computed: { + // 鏃堕棿鍖哄煙 + td() { + return dayjs().format("YYYY-MM-DD HH:mm:ss"); + }, + atd() { + return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD HH:mm:ss"); + }, + statd() { + return dayjs().format("YYYY-MM-DD"); + }, + endatd() { + return dayjs().subtract(this.dyat, "day").format("YYYY-MM-DD"); + }, + }, + created() { + this.$nextTick(function () { + this.getregionAmountCollect(); + this.getUserWorks(); + this.getregionCollect(); + this.getregionOrderCount(); + this.getNodeCount(); + this.getPrtnerCount(); + this.getnodeCollect(); + this.getSkuTop(); + this.getOrderAmount(); + }) + }, + mounted() {}, methods: { - goTarget(href) { - window.open(href, "_blank"); - } - } + // 鏀瑰彉鏃堕棿浜嬩欢 + changes() { + if (this.radio1 == "鍛�") { + this.dyat = 7; + } else if (this.radio1 == "鏈�") { + this.dyat = 30; + } else { + this.dyat = 360; + } + this.getregionAmountCollect(); + this.getUserWorks(); + this.getregionCollect(); + this.getregionOrderCount(); + this.getNodeCount(); + this.getPrtnerCount(); + this.getnodeCollect(); + this.getSkuTop(); + this.getOrderAmount(); + }, + // 鏌辩姸鍥� + async getOrderAmount() { + // const res = await getOrderAmount(this.endatd, this.statd); + // this.cylinderXAxis = res.data.xAxis; + // this.cylinderSeries = res.data.series; + this.cylinderXAxis = [ + "1鏈�", + "2鏈�", + "3鏈�", + "4鏈�", + "5鏈�", + "6鏈�", + "7鏈�", + "8鏈�", + ]; + this.cylinderSeries = [123, 123, 223, 212, 432, 123, 442, 234]; + this.myEcharts(); + }, + // 鑾峰彇鐐逛綅鎬绘暟 + async getNodeCount() { + // const res = await getNodeCount(); + // this.NodeCount = res.data; + }, + // 鑾峰彇鍚堜綔鍟嗘�绘暟 + async getPrtnerCount() { + // const res = await getPrtnerCount(); + // this.PrtnerCount = res.data; + }, + // 鍚堜綔鍟嗙偣浣嶆眹鎬荤粺璁¢ゼ鐘跺浘 + async getnodeCollect() { + // const res = await getnodeCollect(); + // this.nodeCollect = res.data; + this.nodeCollect = [ + { name: "娴欏ぇ涓�闄�", value: 12 }, + { name: "娴欏ぇ浜岄櫌", value: 8 }, + { name: "閲戝叞鍖婚櫌", value: 8 }, + { name: "閭甸�稿か鍖婚櫌", value: 6 }, + { name: "鐪佷汉姘戝尰闄�", value: 5 }, + { name: "鏈濇櫀闄㈠尯", value: 4 }, + ]; + this.myPieChart(); + }, + // top鎺掕 + async getSkuTop() { + // const res = await getSkuTop(10, this.endatd, this.statd); + // this.SkuTop = res.data; + this.SkuTop = [ + { amount: 0, count: 123, skuId: "0", skuName: "鐜嬪ぇ澶�" }, + { amount: 0, count: 122, skuId: "0", skuName: "鍚村ぇ澶�" }, + { amount: 0, count: 112, skuId: "0", skuName: "鏉庝富浠�" }, + { amount: 0, count: 111, skuId: "0", skuName: "寮犳姢澹�" }, + { amount: 0, count: 102, skuId: "0", skuName: "鏉庢姢澹�" }, + { amount: 0, count: 98, skuId: "0", skuName: "鍒樻姢澹�" }, + { amount: 0, count: 89, skuId: "0", skuName: "椹ぇ澶�" }, + { amount: 0, count: 88, skuId: "0", skuName: "椹ぇ澶�" }, + { amount: 0, count: 87, skuId: "0", skuName: "椹ぇ澶�" }, + { amount: 0, count: 67, skuId: "0", skuName: "椹ぇ澶�" }, + ]; + }, + // 鑾峰彇宸ュ崟鏁伴噺 + async getUserWorks() { + // const res = await getUserWork(this.atd, this.td); + // this.ticketStatistics = res.data[0]; + }, + // 鑾峰彇灏辫瘖鏁伴噺 + async getregionOrderCount() { + // const res = await getregionOrderCount({ + // start: this.atd, + // end: this.td, + // }); + + // this.order = res.data; + }, + // 鑾峰彇鎬婚噺鏁伴噺 + async getregionCollect() { + // const res = await getregionCollect({ + // start: this.atd, + // end: this.td, + // }); + // this.Count = (res.data / 1000000).toFixed(2); + }, + + // 鏌辩姸鍥� + myEcharts() { + // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 + var echarts = require("echarts"); + var myChart = echarts.init(document.getElementById("echars2")); + + // 鎸囧畾鍥捐〃鐨勯厤缃」鍜屾暟鎹� + var option = { + title: { + text: "灏辫瘖鍒嗗竷", + left: "center", + }, + grid: { top: "18%", left: "19%", right: "0%", bottom: "24%" }, + xAxis: { + type: "category", + data: this.cylinderXAxis, + }, + yAxis: { + type: "value", + name: "鍗曚綅/鍏�", + }, + series: [ + { + data: this.cylinderSeries, + barWidth: "5%", + type: "bar", + }, + ], + }; + + // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� + myChart.setOption(option); + }, + // 鑾峰彇绾跨姸鍥炬椂闂� + async getregionAmountCollect() { + // const res = await getregionAmountCollect(1, this.endatd, this.statd); + // this.xAxis = res.data.xAxis; + // this.series = res.data.series; + this.xAxis = [ + "1鏈�", + "2鏈�", + "3鏈�", + "4鏈�", + "5鏈�", + "6鏈�", + "7鏈�", + "8鏈�", + ]; + this.series = [123, 123, 223, 212, 432, 123, 442, 234]; + this.myEcharts2(); + }, + // 绾挎�у浘 + myEcharts2() { + var echarts = require("echarts"); + var myChart2 = echarts.init(document.getElementById("echars")); + var option2 = { + color: ["red"], + title: { + text: "灏辫瘖瓒嬪娍鍥�", + left: "center", + }, + grid: { top: "18%", left: "17%", right: "0%", bottom: "24%" }, + xAxis: { + type: "category", + data: this.xAxis, + boundaryGap: true, + }, + yAxis: { + name: "鍗曚綅/鍏�", + type: "value", + }, + series: [ + { + data: this.series, + type: "line", + }, + ], + }; + myChart2.setOption(option2); + }, + // 楗肩姸鍥� + myPieChart() { + // 鍩轰簬鍑嗗濂界殑dom锛屽垵濮嬪寲echarts瀹炰緥 + var echarts = require("echarts"); + var mypPieCharts = echarts.init(document.getElementById("pieCharts")); + + // 鎸囧畾鍥捐〃鐨勯厤缃」鍜屾暟鎹� + var optionPie = { + title: { + left: "left", + }, + + tooltip: { + trigger: "item", + formatter: "{b}<br/>鎬诲崰姣� : {d}% ", + }, + toolbox: { + show: true, + feature: { + mark: { show: true }, + }, + }, + series: [ + { + name: "鍚堜綔鍟嗙偣浣嶆暟Top5", + type: "pie", + radius: ["10%", "70%"], + center: ["50%", "50%"], + roseType: "radius", + data: this.nodeCollect, + }, + ], + }; + + // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� + mypPieCharts.setOption(optionPie); + }, + }, }; </script> -<style scoped lang="scss"> -.home { - blockquote { - padding: 10px 20px; - margin: 0 0 20px; - font-size: 17.5px; - border-left: 5px solid #eee; +<style lang="scss" scoped> +* { + padding: 0; + margin: 0; +} +.boxEchars { + width: 100%; + height: 280px; + margin-top: 45px; + display: flex; + .echars1 { + flex: 1; } - hr { - margin-top: 20px; - margin-bottom: 20px; - border: 0; - border-top: 1px solid #eee; + .echars2 { + flex: 1; } - .col-item { - margin-bottom: 20px; - } - - ul { - padding: 0; - margin: 0; - } - - font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - color: #676a6c; - overflow-x: hidden; - - ul { - list-style-type: none; - } - - h4 { - margin-top: 0px; - } - - h2 { - margin-top: 10px; - font-size: 26px; - font-weight: 100; - } - - p { - margin-top: 10px; - - b { - font-weight: 700; +} +::v-deep .el-table { + td:first-child { + .cell { + display: inline-block; + text-align: center; + width: 22px; + height: 20px; + margin-left: 2px; + padding-left: 6px; + text-align: center; + white-space: nowrap; + font-size: 12px; + font-family: zihun143-zhengkuchaojihei, zihun143; + font-weight: 400; + line-height: 14px; + background: url(~@/assets/order/4.png) no-repeat; + color: #e9b499; } } - - .update-log { - ol { - display: block; - list-style-type: decimal; - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0; - margin-inline-end: 0; - padding-inline-start: 40px; + td:nth-child(2) { + .cell { + height: 20px; + font-size: 14px; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #333; + line-height: 20px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + } + td:last-child { + height: 20px; + font-size: 14px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #737589; + line-height: 20px; + text-align: right; + } +} +::v-deep .el-table { + tr:nth-child(1) { + td:nth-child(1) { + .cell { + background: url(~@/assets/order/1.png); + color: #8e5900; + } + } + } + tr:nth-child(2) { + td:nth-child(1) { + .cell { + background: url(~@/assets/order/2.png); + color: #494949; + } + } + } + tr:nth-child(3) { + td:nth-child(1) { + .cell { + background: url(~@/assets/order/3.png); + color: #cf6d3d; + } } } } -</style> +.moreIcon { + font-size: 22px !important; + margin-left: 400px !important; + color: #5f84ff !important; + cursor: pointer; +} +.moreIcon2 { + font-size: 22px !important; + margin-left: 250px !important; + color: #5f84ff !important; + cursor: pointer; +} +.empenty { + width: 100%; + height: 280px; +} +.cooperate { + width: 100%; + height: 280px; + margin-top: 25px; + display: flex; + .pieChart { + flex: 3; + } + .Points { + width: 154px; + height: 230px; + padding-top: 47px; + padding-left: 38px; + background: linear-gradient(135deg, transparent, #f8f8f9 0) 0 0, + linear-gradient(-135deg, transparent 12px, #f8f8f9 0) 100% 0, + linear-gradient(-45deg, transparent, #f8f8f9 0) 100% 100%, + linear-gradient(45deg, transparent 12px, #f8f8f9 0) 0 100%; + background-size: 50% 50%; + background-repeat: no-repeat; + p { + height: 33px; + margin-bottom: 10px; + font-size: 24px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #072074; + line-height: 33px; + } + span { + height: 17px; + margin-top: 6px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #000412; + line-height: 17px; + } + } +} +.title { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + font-size: 16px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #333; + padding-top: 17px; + padding-bottom: -4px; + span { + margin-left: 10px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #999; + } +} +.bgc2 { + background: #fbefe8 url(~@/assets/dashboard/bg33.png) no-repeat + calc(100% - 12px) 100% !important; + + .home-user-task-stats { + margin-top: 10px; + height: 50px; + font-size: 36px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + line-height: 50px; + text-shadow: 2px 4px 7px rgb(255 99 85 / 50%); + } + .text-color2 { + height: 17px; + margin-top: 3px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #ff5757; + line-height: 17px; + } +} +.bgc1 { + background: #e9f3ff !important; + background-image: url(~@/assets/dashboard/bg11.png), + url(~@/assets/dashboard/bg22.png) !important; + background-repeat: no-repeat, no-repeat !important; + background-position: 0 0, calc(100% - 12px) 100% !important; + .title { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + font-size: 16px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #333; + span { + margin-left: 10px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #999; + } + } + .home-user-task-stats { + margin-top: 10px; + height: 50px; + font-size: 36px; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + line-height: 50px; + text-shadow: 2px 4px 7px rgb(85 132 255 / 50%); + } + .text-color2 { + height: 17px; + margin-top: 3px; + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #91a7dc; + line-height: 17px; + } +} +.headerBox { + height: 150px; + padding: 25px; +} +.el-row { + margin-bottom: 20px; + &:last-child { + margin-bottom: 0; + } +} +.el-col { + border-radius: 4px; +} +.bg-purple-dark { + background: #99a9bf; +} +.bg-purple { + background: #fff; +} +.bg-purple-light { + background: #e5e9f2; +} +.grid-content { + min-height: 36px; + border-radius: 20px; + padding: 0 20px; +} +.row-bg { + padding: 10px 0; + background-color: #f9fafc; +} +</style> diff --git a/src/views/patient/servefn/index.vue b/src/views/patient/servefn/index.vue index 92b4835..2f0b835 100644 --- a/src/views/patient/servefn/index.vue +++ b/src/views/patient/servefn/index.vue @@ -1,27 +1,825 @@ <template> - <div> -鎮h�呮湇鍔� + <div class="Questionnairemanagement"> + <!-- 宸︿晶鏍� --> + <div class="sidecolumn"> + <div class="sidecolumn-top"> + <div class="top-wj">鎮h�呮潵婧�</div> + </div> + + <div class="bottom-fl"> + <el-tabs + tab-position="right" + v-model="activeName" + @tab-click="handleClick" + > + <el-tab-pane label="鍏ㄩ儴" name="first"></el-tab-pane> + <el-tab-pane label="浣忛櫌" name="bhospitalized"></el-tab-pane> + <el-tab-pane label="鍦ㄩ櫌" name="Inhospital"></el-tab-pane> + <el-tab-pane label="闂ㄨ瘖" name="outpatient"></el-tab-pane> + <el-tab-pane label="浣撴" name="physical"></el-tab-pane> + </el-tabs> + </div> + </div> + <!-- 鍙充晶鏁版嵁 --> + <div class="leftvlue"> + <div> + <el-row :gutter="8"> + <el-col :span="2.5"> + <el-card shadow="hover"> + <div style="padding: 10px"> + <span>鎮h�呮�绘暟</span> + <div class="bottom clearfix">1232</div> + </div> + </el-card> + </el-col> + <el-col :span="2.5"> + <el-card shadow="hover"> 榧犳爣鎮诞鏃舵樉绀� </el-card> + </el-col> + <el-col :span="2.5"> + <el-card shadow="hover"> 浠庝笉鏄剧ず </el-card> + </el-col> + </el-row> + </div> + <div class="leftvlue-bg"> + <el-row :gutter="20"> + <!--鏍囩鏁版嵁--> + <el-col :span="24" :xs="24"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="98px" + > + <el-form-item label="鍖婚櫌" prop="userName"> + <el-select v-model="queryParams.value1" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鍑洪櫌鐥呭尯" prop="userName"> + <el-select v-model="queryParams.value2" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="绠$悊鏂规" prop="userName"> + <el-select v-model="queryParams.value3" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鍑洪櫌鏃ユ湡" prop="userName"> + <el-date-picker + v-model="queryParams.valuetime1" + align="right" + type="date" + placeholder="閫夋嫨鏃ユ湡" + :picker-options="pickerOptionsa" + > + </el-date-picker> + </el-form-item> + <el-form-item label="璁″垝闅忚鏃ユ湡" prop="userName"> + <el-date-picker + v-model="queryParams.valuetime2" + align="right" + type="date" + placeholder="閫夋嫨鏃ユ湡" + :picker-options="pickerOptions" + > + </el-date-picker> + </el-form-item> + + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="medium" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button + icon="el-icon-refresh" + size="medium" + @click="resetQuery" + >閲嶇疆</el-button + > + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="medium" + @click="addladeltag" + v-hasPermi="['system:user:add']" + >鏂板</el-button + > + </el-col> + + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="medium" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:user:remove']" + >鍒犻櫎</el-button + > + </el-col> + <el-col :span="1.5"> + <div class="documentf"> + <div class="document"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="medium" + @click="handleExport" + v-hasPermi="['system:user:export']" + >瀵煎嚭</el-button + > + </div> + </div> + </el-col> + + <!-- <el-col :span="1.5"> </el-col> --> + </el-row> + <!-- <right-toolbar + :showSearch.sync="showSearch" + @queryTable="getList" + :columns="columns" + ></right-toolbar> --> + <el-table + v-loading="loading" + :data="userList" + :border="true" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="50" align="center" /> + <el-table-column + fixed + label="搴忓彿" + align="center" + key="tagid" + prop="tagid" + width="50" + /> + <el-table-column + fixed + label="鍑洪櫌鐥呭尯" + align="center" + key="tagname" + prop="tagname" + width="100" + :show-overflow-tooltip="true" + /> + <el-table-column + label="搴旈殢璁挎暟" + align="center" + key="updateTime" + prop="updateTime" + > + <template slot-scope="scope"> + <span + >{{ scope.row.updateBy }} + <p>{{ scope.row.updateTime }}</p></span + > + </template> + </el-table-column> + + <el-table-column + label="闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="闅忚瀹屾垚鐜�" + align="center" + key="isupload" + prop="isupload" + > + </el-table-column> + <el-table-column + label="AI澶栧懠娆℃暟" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="AI闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="AI闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="寰俊鍙戦�佹鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="寰俊闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="寰俊闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="鐭俊鍙戦�佹鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="鐭俊闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="鐭俊闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚娆℃暟" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="澶辫鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="澶辫鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="澶辫鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="寮傚父鎬绘暟" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="鎬诲紓甯哥巼" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="鍥炲寮傚父鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="鍥炲寮傚父鍙婃椂澶勭悊鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + <el-table-column + label="鍥炲寮傚父鍙婃椂澶勭悊鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + > + </el-table-column> + + <!-- <el-table-column + label="鎿嶄綔" + align="center" + width="300" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="handleUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-textxg" + ><i class="el-icon-edit"></i>淇敼</span + ></el-button + > + <el-button + size="medium" + type="text" + @click="handleDelete(scope.row)" + v-hasPermi="['system:user:remove']" + ><span class="button-textsc" + ><i class="el-icon-delete"></i>鍒犻櫎</span + ></el-button + > + </template> + </el-table-column> --> + </el-table> + + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + </el-col> + </el-row> + </div> + </div> </div> </template> <script> -export default { - data () { - return { +import { + toamendtag, + addapitag, + detailstag, + deletetag, + changetagcategory, + toamendtagcategory, + addtagcategory, + deletetagcategory, + listtag, + tagclassifylist, +} from "@/api/system/label"; - } +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; +const shortcuts = [ + { + text: "浠婂ぉ", + onClick(picker) { + picker.$emit("pick", new Date()); + }, }, - - created () { - + { + text: "鏄ㄥぉ", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24); + picker.$emit("pick", date); + }, + }, + { + text: "涓�鍛ㄥ墠", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit("pick", date); + }, + }, +]; +export default { + name: "questionnaire", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, + data() { + return { + topactiveName: "Local", //椤堕儴閫夋嫨 + activeName: "first", //渚ц竟閫夋嫨 + // 閬僵灞� + loading: false, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + idds: "", //鍒嗙被id + // 鎬绘潯鏁� + total: 0, + amendtag: false, //鏄惁淇敼绫诲埆 + lstamendtag: false, //鏄惁淇敼鏍囩 + scavisible: false, //鍒犻櫎寮规 + deleteVisible: false, //鍒嗙被鍒犻櫎寮规 + deletefenl: "楂樿鍘�", //鍒犻櫎椤� + //淇敼娣诲姞鏍囩寮规鏁版嵁 + tagform: { + isupload: "", + tagname: "", + tagcategoryid: "", + tagdescription: "", + }, + classifyform: { + categoryname: "", + }, + // 鏍囩琛ㄦ牸鏁版嵁 + userList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 宀椾綅閫夐」 + postOptions: [], + // 瑙掕壊閫夐」 + roleOptions: [], + // 琛ㄥ崟鍙傛暟 + form: {}, + forms: { + name: "", + }, + numberlb: 22, + dialogFormVisible: false, //娣诲姞銆佷慨鏀圭被鍒脊妗� + lstamendtagVisible: false, //娣诲姞銆佷慨鏀规爣绛惧脊妗� + goQRCodeVisible: false, //浜岀淮鐮佸脊妗� + sidecolumnval: "", //绫诲埆鎼滅储 + propss: { multiple: true }, + topqueryParams: {}, //瀵煎嚭绛涢�夋潯浠� + options: [ + { + value: 1, + label: "涓滃崡", + }, + { + value: 2, + label: "瑗垮寳", + }, + { + value: 3, + label: "浠ㄤ花浠�", + }, + { + value: 4, + label: "鍏椋掗", + }, + ], + pickerOptions: { + disabledDate(time) { + return time.getTime() < Date.now() - 3600 * 1000 * 24; + }, + shortcuts: shortcuts, + }, + pickerOptionsa: { + disabledDate(time) { + return time.getTime() > Date.now(); + }, + shortcuts: shortcuts, + }, + // 鏌ヨ鏍囩鍒楄〃鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + tagname: undefined, + tagdescription: undefined, + }, + // 鍒椾俊鎭� + columns: [ + { key: 0, label: `鏍囩缂栧彿`, visible: true }, + { key: 1, label: `鏍囩鍚嶇О`, visible: true }, + { key: 2, label: `鏍囩鏄电О`, visible: true }, + { key: 3, label: `閮ㄩ棬`, visible: true }, + { key: 4, label: `鎵嬫満鍙风爜`, visible: true }, + { key: 5, label: `鐘舵�乣, visible: true }, + { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }, + ], + }; + }, + watch: {}, + created() { + this.getList(); + this.gitclasify(); }, methods: { + /** 鏌ヨ鏍囩鍒楄〃 */ + getList() { + listtag(this.addDateRange(this.queryParams)).then((response) => { + console.log(response); + this.total = response.total; + this.userList = response.rows; + }); + }, + /** 淇敼鏍囩 */ + handleUpdate(row) { + console.log(row, "淇敼鏍囩"); + this.lstamendtagVisible = true; + this.lstamendtag = true; + this.tagform = { + isupload: row.isupload, + tagname: row.tagname, + tagcategoryid: row.tagcategoryid, + tagdescription: row.tagdescription, + tagid: row.tagid, + }; + }, + addladeltag() { + this.lstamendtagVisible = true; + this.lstamendtag = false; + this.tagform = { + isupload: "", + tagname: "", + tagcategoryid: "", + tagdescription: "", + tagid: "", + }; + }, + // 娣诲姞/淇敼鏍囩 + Maintenancetag() { + if (this.lstamendtag) { + toamendtag(this.addDateRange(this.tagform)).then((response) => { + console.log(response); + this.getList(); + }); + } else { + addapitag(this.addDateRange(this.tagform)).then((response) => { + console.log(response); + this.getList(); + }); + } + this.tagform = { + isupload: "", + tagname: "", + tagcategoryid: "", + tagdescription: "", + tagid: "", + }; + }, - } -} + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + userId: undefined, + deptId: undefined, + userName: undefined, + nickName: undefined, + password: undefined, + phonenumber: undefined, + email: undefined, + sex: undefined, + status: "0", + remark: undefined, + postIds: [], + roleIds: [], + }; + this.resetForm("form"); + }, + // 鏍囩鐘舵�佷慨鏀� + handleStatusChange(row) { + console.log(row.isupload); + let text = row.isupload === "0" ? "鍚敤" : "鍋滅敤"; + this.$modal + .confirm('纭瑕�"' + text + '""' + row.tagname + '"鏍囩鍚楋紵') + .then(function () { + return changetagcategory(row.tagid, row.isupload); + }) + .then(() => { + this.$modal.msgSuccess(text + "鎴愬姛"); + }) + .catch(function () { + row.isupload = row.isupload === "0" ? "1" : "0"; + }); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.queryParams.tagname = ""; + this.$refs.tree.setCurrentKey(null); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.tagid); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + console.log(row, "鍒犻櫎寮圭獥"); + const tagids = row.tagid || this.ids; + console.log(tagids); + const tagname = row.tagname; + this.$modal + .confirm( + tagname + ? '鏄惁纭鍒犻櫎鏍囩鍚嶇О涓�"' + tagname + '"鐨勬暟鎹」锛�' + : "鏄惁纭鍒犻櫎閫変腑鐨勬暟鎹」锛�" + ) + .then(function () { + return deletetag(tagids); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download( + "base/tag/export", + { + ...this.topqueryParams, + }, + `user_${new Date().getTime()}.xlsx` + ); + }, + }, +}; </script> -<style lang='scss' scoped> +<style lang="scss" scoped> +.Questionnairemanagement { + display: flex; +} +.sidecolumn { + width: 180px; + min-height: 100vh; + text-align: center; + // display: flex; + margin-top: 20px; + margin: 20px; + padding: 30px; + background: #edf1f7; + border: 1px solid #dcdfe6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); + .sidecolumn-top { + display: flex; + justify-content: space-between; + .top-wj { + font-size: 20px; + } + .top-tj { + font-size: 18px; + color: rgb(0, 89, 255); + cursor: pointer; + } + } + .center-ss { + margin-top: 30px; + .input-with-select { + height: 40px !important; + } + } + .bottom-fl { + margin-top: 30px; + display: center !important; + } +} +.qrcode-dialo { + text-align: center; + // display: flex; + margin: 20px; + padding: 30px; + background: #edf1f7; + border: 1px solid #dcdfe6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); + .qrcode-text { + font-size: 20px; + span { + margin-left: 20px; + } + } + .qrcode-img { + width: 300px; + height: 400px; + } +} +::v-deep.el-tabs--left, +.el-tabs--right { + overflow: hidden; + align-items: center; + display: flex; +} +::v-deep.el-input--medium .el-input__inner { + height: 40px !important; +} +::v-deep.el-tabs--right .el-tabs__active-bar.is-right { + height: 40px; + width: 5px; + left: 0; +} +::v-deep.el-tabs--right .el-tabs__item.is-right { + display: block; + text-align: left; + font-size: 20px; +} + +.leftvlue-bg { + // display: flex; + // flex: 1; + width: 80%; + margin-top: 20px; + // margin: 20px; + padding: 30px; + background: #ffff; + border: 1px solid #dcdfe6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); + .mulsz { + font-size: 20px; + } +} + +.document { + width: 100px; + height: 50px; +} +.documentf { + display: flex; + justify-content: flex-end; +} +.button-text { + color: rgb(70, 204, 238); +} +.button-textck { + color: rgb(39, 167, 67); +} +.button-textxg { + color: rgb(35, 81, 233); +} +.button-textsc { + color: rgb(235, 23, 23); +} </style> diff --git a/src/views/sfstatistics/percentage/index.vue b/src/views/sfstatistics/percentage/index.vue index 14a3057..15dda78 100644 --- a/src/views/sfstatistics/percentage/index.vue +++ b/src/views/sfstatistics/percentage/index.vue @@ -415,6 +415,30 @@ import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; +const shortcuts = [ + { + text: "浠婂ぉ", + onClick(picker) { + picker.$emit("pick", new Date()); + }, + }, + { + text: "鏄ㄥぉ", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24); + picker.$emit("pick", date); + }, + }, + { + text: "涓�鍛ㄥ墠", + onClick(picker) { + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit("pick", date); + }, + }, +]; export default { name: "questionnaire", dicts: ["sys_normal_disable", "sys_user_sex"], @@ -497,59 +521,13 @@ disabledDate(time) { return time.getTime() < Date.now() - 3600 * 1000 * 24; }, - shortcuts: [ - { - text: "浠婂ぉ", - onClick(picker) { - picker.$emit("pick", new Date()); - }, - }, - { - text: "鏄ㄥぉ", - onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24); - picker.$emit("pick", date); - }, - }, - { - text: "涓�鍛ㄥ墠", - onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit("pick", date); - }, - }, - ], + shortcuts: shortcuts, }, pickerOptionsa: { disabledDate(time) { return time.getTime() > Date.now(); }, - shortcuts: [ - { - text: "浠婂ぉ", - onClick(picker) { - picker.$emit("pick", new Date()); - }, - }, - { - text: "鏄ㄥぉ", - onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24); - picker.$emit("pick", date); - }, - }, - { - text: "涓�鍛ㄥ墠", - onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit("pick", date); - }, - }, - ], + shortcuts: shortcuts, }, // 鏌ヨ鏍囩鍒楄〃鍙傛暟 queryParams: { @@ -568,52 +546,6 @@ { key: 5, label: `鐘舵�乣, visible: true }, { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }, ], - // 琛ㄥ崟鏍¢獙 - // rules: { - // userName: [ - // { required: true, message: "鏍囩鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, - // { - // min: 2, - // max: 20, - // message: "鏍囩鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", - // trigger: "blur", - // }, - // ], - // nickName: [ - // { required: true, message: "鏍囩鏄电О涓嶈兘涓虹┖", trigger: "blur" }, - // ], - // password: [ - // { required: true, message: "鏍囩瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, - // { - // min: 5, - // max: 20, - // message: "鏍囩瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", - // trigger: "blur", - // }, - // ], - // email: [ - // { - // type: "email", - // message: "璇疯緭鍏ユ纭殑閭鍦板潃", - // trigger: ["blur", "change"], - // }, - // ], - // phonenumber: [ - // { - // pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, - // message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", - // trigger: "blur", - // }, - // ], - // IDnumber: [ - // { - // pattern: - // /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, - // message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�", - // trigger: "blur", - // }, - // ], - // }, }; }, watch: {}, -- Gitblit v1.9.3