| | |
| | | export * from './patientexternal' |
| | | export * from './EChartsdata' |
| | | export * from './satisfactionse' |
| | | export * from './satisfaction' |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from "@/utils/request"; |
| | | |
| | | // å¤é¾è·åé访 |
| | | export function getScriptByCondition(data) { |
| | | return request({ |
| | | url: "/smartor/servicetask/getScriptByCondition", |
| | | method: "post", |
| | | data: data |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | // ç¼åé®å· |
| | | export function saveMYDQuestionAnswer(data) { |
| | | return request({ |
| | | url: "/smartor/subtaskAnswer/saveMYDQuestionAnswer", |
| | | method: "post", |
| | | data: data |
| | | }); |
| | | } |
| | | |
| | | |
| | |
| | | import router from './router' |
| | | import store from './store' |
| | | import { Message } from 'element-ui' |
| | | import NProgress from 'nprogress' |
| | | import 'nprogress/nprogress.css' |
| | | import { getToken } from '@/utils/auth' |
| | | import { isRelogin } from '@/utils/request' |
| | | import router from "./router"; |
| | | import store from "./store"; |
| | | import { Message } from "element-ui"; |
| | | import NProgress from "nprogress"; |
| | | import "nprogress/nprogress.css"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import { isRelogin } from "@/utils/request"; |
| | | |
| | | NProgress.configure({ showSpinner: false }) |
| | | NProgress.configure({ showSpinner: false }); |
| | | |
| | | const whiteList = ['/login', '/auth-redirect', '/bind', '/register','/wt','/xj','/sf', '/outsideChain','/outsideChainwt','/outsideChainxj'] |
| | | const whiteList = [ |
| | | "/login", |
| | | "/auth-redirect", |
| | | "/bind", |
| | | "/register", |
| | | "/wt", |
| | | "/xj", |
| | | "/sf", |
| | | "/satisfaction", |
| | | ]; |
| | | router.beforeEach((to, from, next) => { |
| | | NProgress.start() |
| | | NProgress.start(); |
| | | if (getToken()) { |
| | | to.meta.title && store.dispatch('settings/setTitle', to.meta.title) |
| | | to.meta.title && store.dispatch("settings/setTitle", to.meta.title); |
| | | /* has token*/ |
| | | if (to.path === '/login') { |
| | | next({ path: '/' }) |
| | | NProgress.done() |
| | | if (to.path === "/login") { |
| | | next({ path: "/" }); |
| | | NProgress.done(); |
| | | } else { |
| | | if (store.getters.roles.length === 0) { |
| | | isRelogin.show = true |
| | | isRelogin.show = true; |
| | | // 夿å½åç¨æ·æ¯å¦å·²æåå®user_infoä¿¡æ¯ |
| | | store.dispatch('GetInfo').then(() => { |
| | | isRelogin.show = false |
| | | store.dispatch('GenerateRoutes').then(accessRoutes => { |
| | | // æ ¹æ®rolesæéçæå¯è®¿é®çè·¯ç±è¡¨ |
| | | router.addRoutes(accessRoutes) // å¨ææ·»å å¯è®¿é®è·¯ç±è¡¨ |
| | | next({ ...to, replace: true }) // hackæ¹æ³ ç¡®ä¿addRoutes已宿 |
| | | store |
| | | .dispatch("GetInfo") |
| | | .then(() => { |
| | | isRelogin.show = false; |
| | | store.dispatch("GenerateRoutes").then((accessRoutes) => { |
| | | // æ ¹æ®rolesæéçæå¯è®¿é®çè·¯ç±è¡¨ |
| | | router.addRoutes(accessRoutes); // å¨ææ·»å å¯è®¿é®è·¯ç±è¡¨ |
| | | next({ ...to, replace: true }); // hackæ¹æ³ ç¡®ä¿addRoutes已宿 |
| | | }); |
| | | }) |
| | | }).catch(err => { |
| | | store.dispatch('LogOut').then(() => { |
| | | Message.error(err) |
| | | next({ path: '/' }) |
| | | }) |
| | | }) |
| | | .catch((err) => { |
| | | store.dispatch("LogOut").then(() => { |
| | | Message.error(err); |
| | | next({ path: "/" }); |
| | | }); |
| | | }); |
| | | } else { |
| | | next() |
| | | next(); |
| | | } |
| | | } |
| | | } else { |
| | | // 没ætoken |
| | | if (whiteList.indexOf(to.path) !== -1) { |
| | | // å¨å
ç»å½ç½ååï¼ç´æ¥è¿å
¥ |
| | | next() |
| | | next(); |
| | | } else { |
| | | next(`/login?redirect=${to.fullPath}`) // å¦åå
¨é¨éå®åå°ç»å½é¡µ |
| | | NProgress.done() |
| | | next(`/login?redirect=${to.fullPath}`); // å¦åå
¨é¨éå®åå°ç»å½é¡µ |
| | | NProgress.done(); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | |
| | | router.afterEach(() => { |
| | | NProgress.done() |
| | | }) |
| | | NProgress.done(); |
| | | }); |
| | |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/satisfaction', |
| | | component: () => import('@/views/satisfaction'), |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/outsideChain', |
| | | component: () => import('@/views/outsideChain'), |
| | | hidden: true |
| | |
| | | }, |
| | | }, |
| | | ], |
| | | // é访类å |
| | | tasktypes: (state) => [ |
| | | { |
| | | value: 1, |
| | | label: "çæµè¯ä¼°", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åºé¢é访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "é¨è¯é访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣æå
³æ", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "å¤è¯ç®¡ç", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | // { |
| | | // value: 5, |
| | | // label: "满æåº¦è°æ¥", |
| | | // raw: { |
| | | // cssClass: "", |
| | | // listClass: "", |
| | | // }, |
| | | // }, |
| | | { |
| | | value: 7, |
| | | label: "æ£è
æ¥å", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | // { |
| | | // value: 8, |
| | | // label: "å
¶ä»éç¥", |
| | | // raw: { |
| | | // cssClass: "", |
| | | // listClass: "", |
| | | // }, |
| | | // }, |
| | | { |
| | | value: 9, |
| | | label: "使£é访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | // { |
| | | // value: 1", |
| | | // label: "廿é访", |
| | | // raw: { |
| | | // cssClass: "", |
| | | // listClass: "", |
| | | // }, |
| | | // }, |
| | | { |
| | | value: 11, |
| | | label: "å½±åé访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | { |
| | | value: 12, |
| | | label: "å¿çµé访", |
| | | raw: { |
| | | cssClass: "", |
| | | listClass: "", |
| | | }, |
| | | }, |
| | | // { |
| | | // value: "13", |
| | | // label: "ä¸ç
é访", |
| | | // raw: { |
| | | // cssClass: "", |
| | | // listClass: "", |
| | | // }, |
| | | // }, |
| | | ], |
| | | }; |
| | | |
| | | export default getters; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC=='丽水å¸ä¸å»é¢') { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | label: "æ¶æ¯éç¥", |
| | | }, |
| | | ], |
| | | taskoptions: [ |
| | | { |
| | | value: "1", |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | // { |
| | | // value: "5", |
| | | // label: "满æåº¦è°æ¥", |
| | | // }, |
| | | { |
| | | value: "7", |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | // { |
| | | // value: "8", |
| | | // label: "å
¶ä»éç¥", |
| | | // }, |
| | | { |
| | | value: "9", |
| | | label: "使£é访", |
| | | }, |
| | | // { |
| | | // value: "10", |
| | | // label: "廿é访", |
| | | // }, |
| | | { |
| | | value: "11", |
| | | label: "å½±åé访", |
| | | }, |
| | | { |
| | | value: "12", |
| | | label: "å¿çµé访", |
| | | }, |
| | | { |
| | | value: "13", |
| | | label: "ä¸ç
é访", |
| | | }, |
| | | ], |
| | | tasktopic: "2", //æ°å¢ç±»å |
| | | taskoptions: store.getters.tasktypes, |
| | | tasktopic: 2, //æ°å¢ç±»å |
| | | activname: "", |
| | | value: [], |
| | | list: [], |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC=='丽水å¸ä¸å»é¢') { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | ) |
| | | .then(() => { |
| | | console.log(row); |
| | | this.topicobj.scriptTopic = row.targetname; |
| | | // this.topicobj.scriptTopic = row.targetname; |
| | | this.topicobj.valueType = row.valueType; |
| | | this.topicobj.scriptType = row.scriptType; |
| | | this.topicobj.scriptContent = row.targetdesc; |
| | | // this.topicobj.scriptContent = row.targetdesc; |
| | | this.topicobj.targetid = row.id; |
| | | this.topicobj.targetname = row.targetname; |
| | | this.topicobj.svyLibScriptOptions = []; |
| | |
| | | display: flex; |
| | | .presentation-left { |
| | | width: 45%; |
| | | // height: 500px; |
| | | max-height: 80vh; |
| | | padding: 0 20px; |
| | | font-size: 18px; |
| | | overflow: auto; |
| | | .button-textxg { |
| | | color: #024df0; |
| | | } |
| | |
| | | } |
| | | .presentation-right { |
| | | width: 55%; |
| | | max-height: 688px; |
| | | max-height: 80vh; |
| | | padding: 0 20px; |
| | | font-size: 18px; |
| | | overflow: auto; |
| | |
| | | label: "æ¶æ¯éç¥", |
| | | }, |
| | | ], |
| | | taskoptions: [ |
| | | { |
| | | value: "1", |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | // { |
| | | // value: "5", |
| | | // label: "满æåº¦è°æ¥", |
| | | // }, |
| | | { |
| | | value: "7", |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | // { |
| | | // value: "8", |
| | | // label: "å
¶ä»éç¥", |
| | | // }, |
| | | { |
| | | value: "9", |
| | | label: "使£é访", |
| | | }, |
| | | // { |
| | | // value: "10", |
| | | // label: "廿é访", |
| | | // }, |
| | | { |
| | | value: "11", |
| | | label: "å½±åé访", |
| | | }, |
| | | { |
| | | value: "12", |
| | | label: "å¿çµé访", |
| | | }, |
| | | // { |
| | | // value: "13", |
| | | // label: "ä¸ç
é访", |
| | | // }, |
| | | ], |
| | | taskoptions: store.getters.tasktypes, |
| | | tasktopic: "2", //æ°å¢ç±»å |
| | | activname: "", |
| | | value: [], |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC == "丽水å¸ä¸å»é¢") { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = "1400398571877961728"; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC=='丽水å¸ä¸å»é¢') { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; |
| | |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh,drcode,drname) { |
| | | this.$modal.msgWarning('360åè½ææªå¼é'); |
| | | return; // 黿¢åç»ä»£ç æ§è¡ |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | if (this.postData.XiaoXiTou.ZuHuMC=='丽水å¸ä¸å»é¢') { |
| | | this.postData.YeWuXX.YongHuXX.YongHuID = '1400398571877961728'; |
| | |
| | | }, |
| | | ], |
| | | |
| | | tasktypes: [ |
| | | { |
| | | value: 1, |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | // { |
| | | // value: 5, |
| | | // label: "满æåº¦è°æ¥", |
| | | // }, |
| | | { |
| | | value: 7, |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | // { |
| | | // value: 8, |
| | | // label: "å
¶ä»éç¥", |
| | | // }, |
| | | { |
| | | value: 9, |
| | | label: "使£é访", |
| | | }, |
| | | // { |
| | | // value: 1", |
| | | // label: "廿é访", |
| | | // }, |
| | | { |
| | | value: 11, |
| | | label: "å½±åé访", |
| | | }, |
| | | { |
| | | value: 12, |
| | | label: "å¿çµé访", |
| | | }, |
| | | // { |
| | | // value: "13", |
| | | // label: "ä¸ç
é访", |
| | | // }, |
| | | ], |
| | | tasktypes: store.getters.tasktypes, |
| | | // ç§å®¤/ç
åº |
| | | belongWards: [], |
| | | deptlist: [], |
| | |
| | | }, |
| | | ], |
| | | |
| | | tasktypes: [ |
| | | { |
| | | value: "1", |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: "2", |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: "3", |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: "4", |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: "5", |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | // { |
| | | // value: "5", |
| | | // label: "满æåº¦è°æ¥", |
| | | // }, |
| | | { |
| | | value: "7", |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | // { |
| | | // value: "8", |
| | | // label: "å
¶ä»éç¥", |
| | | // }, |
| | | { |
| | | value: "9", |
| | | label: "使£é访", |
| | | }, |
| | | // { |
| | | // value: "10", |
| | | // label: "廿é访", |
| | | // }, |
| | | { |
| | | value: "11", |
| | | label: "å½±åé访", |
| | | }, |
| | | { |
| | | value: "12", |
| | | label: "å¿çµé访", |
| | | }, |
| | | // { |
| | | // value: "13", |
| | | // label: "ä¸ç
é访", |
| | | // }, |
| | | ], |
| | | tasktypes: store.getters.tasktypes, |
| | | // ç§å®¤/ç
åº |
| | | belongWards: [], |
| | | deptlist: [], |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="questionnaire" :class="'survey-type-' + surveyType"> |
| | | <div class="CONTENT" v-if="!accomplish"> |
| | | <div class="preview-left"> |
| | | <div class="toptitle"> |
| | | <div class="title">{{ surveyTitle }}</div> |
| | | <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5"> |
| | | {{ surveyDescription }} |
| | | </div> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | |
| | | <!-- åéé¢ --> |
| | | <div |
| | | class="topic-dev" |
| | | v-for="(item, index) in questionList" |
| | | :key="item.scriptId" |
| | | > |
| | | <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1"> |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}ã<span style="line-height: 1.5" |
| | | >{{ item.scriptContent }} |
| | | <span style="color: #3ba2f7">[åé]</span></span |
| | | > |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group |
| | | class="custom-radio" |
| | | v-model="item.scriptResult" |
| | | @change="handleOptionChange($event, index, item)" |
| | | > |
| | | <el-radio |
| | | border |
| | | v-for="(option, optIndex) in item.svyLibTemplateTargetoptions" |
| | | :class=" |
| | | option.isabnormal && |
| | | item.scriptResult == option.optioncontent |
| | | ? 'red-star' |
| | | : '' |
| | | " |
| | | :key="optIndex" |
| | | :label="option.optioncontent" |
| | | >{{ option.optioncontent }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | <div v-show="item.prompt"> |
| | | <el-alert :title="item.prompt" type="warning"> </el-alert> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- å¤éé¢ --> |
| | | <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 2"> |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}ã<span style="line-height: 1.5" |
| | | >{{ item.scriptContent }} |
| | | <span style="color: #3ba2f7">[å¤é]</span></span |
| | | > |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group |
| | | class="custom-radio" |
| | | v-model="item.scriptResult" |
| | | > |
| | | <el-checkbox |
| | | border |
| | | @change="$forceUpdate()" |
| | | v-for="(option, optIndex) in item.svyLibTemplateTargetoptions" |
| | | :key="optIndex" |
| | | :label="option.optioncontent" |
| | | > |
| | | {{ option.optioncontent }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | <div v-show="item.prompt && item.scriptResult[0]"> |
| | | <el-alert :title="item.prompt" type="warning"> </el-alert> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- å¡«ç©ºé¢ --> |
| | | <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4"> |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}ã<span style="line-height: 1.5" |
| | | >{{ item.scriptContent |
| | | }}<span style="color: #3ba2f7">[é®ç]</span></span |
| | | > |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="3" |
| | | placeholder="请è¾å
¥æ¨çæè§æå»ºè®®" |
| | | v-model="item.scriptResult" |
| | | clearable |
| | | > |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="bottom-fixed"> |
| | | <el-button |
| | | type="primary" |
| | | style="width: 80%; font-size: 20px" |
| | | @click="submitSurvey" |
| | | >æäº¤é®å·</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="CONTENT" v-else> |
| | | <div class="preview-lefts"> |
| | | <div class="completion-message"> |
| | | <div class="thank-you">{{ this.accomplish||'æè°¢æ¨çé
å!' }}</div> |
| | | <div class="feedback-message">{{ completionMessage }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getScriptByCondition, |
| | | saveMYDQuestionAnswer, |
| | | } from "@/api/AiCentre/index"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | surveyType: null, // 'outpatient', 'inpatient' |
| | | surveyTitle: "", |
| | | surveyDescription: "", |
| | | questionList: [], |
| | | completionMessage: "", |
| | | accomplish: false, |
| | | |
| | | // å å¯åçåæ° |
| | | encryptedParams: { |
| | | param1: "", |
| | | param2: "", |
| | | param3: "", |
| | | param4: "", |
| | | }, |
| | | |
| | | // æµè¯æ°æ® |
| | | testData: { |
| | | 1: { |
| | | title: "é¨è¯æ»¡æåº¦è°æ¥", |
| | | description: |
| | | "亲ç±çæ£è
ï¼æè°¢æ¨éæ©æä»¬çå»çæå¡ã为äºä¸ææåæå¡è´¨éï¼è¯·æ¨è±å åéæ¶é´å¡«åæ¤é®å·ã", |
| | | questions: [ |
| | | { |
| | | scriptId: 1, |
| | | scriptType: 1, |
| | | scriptContent: "æ¨å¯¹é¨è¯å»ççè¯çæ°´å¹³æ¯å¦æ»¡æï¼", |
| | | scriptResult: null, |
| | | svyLibTemplateTargetoptions: [ |
| | | { optioncontent: "é常满æ", value: "5", isabnormal: false }, |
| | | { optioncontent: "满æ", value: "4", isabnormal: false }, |
| | | { optioncontent: "ä¸è¬", value: "3", isabnormal: true }, |
| | | { optioncontent: "䏿»¡æ", value: "2", isabnormal: true }, |
| | | { optioncontent: "é叏䏿»¡æ", value: "1", isabnormal: true }, |
| | | ], |
| | | }, |
| | | { |
| | | scriptId: 2, |
| | | scriptType: 1, |
| | | scriptContent: "æ¨å¯¹é¨è¯æ¤å£«çæå¡æåº¦æ¯å¦æ»¡æï¼", |
| | | scriptResult: null, |
| | | svyLibTemplateTargetoptions: [ |
| | | { optioncontent: "é常满æ", value: "5", isabnormal: false }, |
| | | { optioncontent: "满æ", value: "4", isabnormal: false }, |
| | | { optioncontent: "ä¸è¬", value: "3", isabnormal: true }, |
| | | { optioncontent: "䏿»¡æ", value: "2", isabnormal: true }, |
| | | { optioncontent: "é叏䏿»¡æ", value: "1", isabnormal: true }, |
| | | ], |
| | | }, |
| | | { |
| | | scriptId: 3, |
| | | scriptType: 2, |
| | | scriptContent: "æ¨è®¤ä¸ºé¨è¯åªäºæ¹é¢éè¦æ¹è¿ï¼ï¼å¯å¤éï¼", |
| | | scriptResult: [], |
| | | svyLibTemplateTargetoptions: [ |
| | | { |
| | | optioncontent: "æéçåæ¶é´", |
| | | value: "waiting_time", |
| | | isabnormal: false, |
| | | }, |
| | | { |
| | | optioncontent: "å»çæ²éæ¹å¼", |
| | | value: "communication", |
| | | isabnormal: false, |
| | | }, |
| | | { |
| | | optioncontent: "å°±è¯ç¯å¢", |
| | | value: "environment", |
| | | isabnormal: false, |
| | | }, |
| | | { |
| | | optioncontent: "å»ç设å¤", |
| | | value: "equipment", |
| | | isabnormal: false, |
| | | }, |
| | | { optioncontent: "å
¶ä»", value: "other", isabnormal: false }, |
| | | ], |
| | | }, |
| | | { |
| | | scriptId: 4, |
| | | scriptType: 4, |
| | | scriptContent: "æ¨å¯¹é¨è¯æå¡è¿æä»ä¹å
¶ä»å»ºè®®ï¼", |
| | | scriptResult: null, |
| | | }, |
| | | ], |
| | | completionMessage: |
| | | "æè°¢æ¨å®è´µçæè§ï¼æä»¬å°ä¸ææ¹è¿é¨è¯æå¡è´¨éï¼ä¸ºæ¨æä¾æ´å¥½çå»çæå¡ä½éªã", |
| | | }, |
| | | 2: { |
| | | title: "ä½é¢æ»¡æåº¦è°æ¥", |
| | | description: |
| | | "亲ç±çæ£è
åå®¶å±ï¼æè°¢æ¨éæ©å¨æé¢ä½é¢æ²»çãä¸ºäºæåä½é¢æå¡è´¨éï¼è¯·æ¨å¡«åæ¤é®å·ã", |
| | | questions: [ |
| | | { |
| | | scriptId: 1, |
| | | scriptType: 1, |
| | | scriptContent: "æ¨å¯¹ä½é¢æé´å»ççè¯çæ°´å¹³æ¯å¦æ»¡æï¼", |
| | | scriptResult: null, |
| | | svyLibTemplateTargetoptions: [ |
| | | { optioncontent: "é常满æ", value: "5", isabnormal: false }, |
| | | { optioncontent: "满æ", value: "4", isabnormal: false }, |
| | | { optioncontent: "ä¸è¬", value: "3", isabnormal: true }, |
| | | { optioncontent: "䏿»¡æ", value: "2", isabnormal: true }, |
| | | { optioncontent: "é叏䏿»¡æ", value: "1", isabnormal: true }, |
| | | ], |
| | | }, |
| | | { |
| | | scriptId: 2, |
| | | scriptType: 1, |
| | | scriptContent: "æ¨å¯¹ä½é¢æé´æ¤å£«çæ¤çæå¡æ¯å¦æ»¡æï¼", |
| | | scriptResult: null, |
| | | svyLibTemplateTargetoptions: [ |
| | | { optioncontent: "é常满æ", value: "5", isabnormal: false }, |
| | | { optioncontent: "满æ", value: "4", isabnormal: false }, |
| | | { optioncontent: "ä¸è¬", value: "3", isabnormal: true }, |
| | | { optioncontent: "䏿»¡æ", value: "2", isabnormal: true }, |
| | | { optioncontent: "é叏䏿»¡æ", value: "1", isabnormal: true }, |
| | | ], |
| | | }, |
| | | { |
| | | scriptId: 3, |
| | | scriptType: 1, |
| | | scriptContent: "æ¨å¯¹ä½é¢ç
æ¿çç¯å¢åå«çæ¯å¦æ»¡æï¼", |
| | | scriptResult: null, |
| | | svyLibTemplateTargetoptions: [ |
| | | { optioncontent: "é常满æ", value: "5", isabnormal: false }, |
| | | { optioncontent: "满æ", value: "4", isabnormal: false }, |
| | | { optioncontent: "ä¸è¬", value: "3", isabnormal: true }, |
| | | { optioncontent: "䏿»¡æ", value: "2", isabnormal: true }, |
| | | { optioncontent: "é叏䏿»¡æ", value: "1", isabnormal: true }, |
| | | ], |
| | | }, |
| | | { |
| | | scriptId: 4, |
| | | scriptType: 4, |
| | | scriptContent: "æ¨å¯¹ä½é¢æå¡è¿æä»ä¹å
¶ä»å»ºè®®ï¼", |
| | | scriptResult: null, |
| | | }, |
| | | ], |
| | | completionMessage: |
| | | "æè°¢æ¨å¯¹æä»¬å·¥ä½çæ¯æï¼æä»¬å°æ ¹æ®æ¨çåé¦æç»æ¹è¿ä½é¢æå¡è´¨éï¼ç¥æ¨æ©æ¥åº·å¤ï¼", |
| | | }, |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.initSurveyData(); |
| | | }, |
| | | methods: { |
| | | // åå§åè°æ¥æ°æ® |
| | | initSurveyData() { |
| | | // ä»è·¯ç±åæ°è·åå å¯åçåæ° |
| | | this.encryptedParams.param1 = |
| | | this.$route.query.param1 || |
| | | "DBohZ1ARKfFmCdKrBKQ6JW3ddPTtDpgSaRZaKtxBMTJ4FngT06Vy-VskiwDYJJRwfvkHrPIZlkafgZybobGtKQ=="; |
| | | this.encryptedParams.param2 = |
| | | this.$route.query.param2 || |
| | | "WQXniB7BIlizOwOQ4KZqITNrqWpLU3SD5vXdHLeYaviA-1T5Dtk70IJWAHbtcDUuYz-2ObYuMj4YKHfWhlCLzw=="; |
| | | this.encryptedParams.param3 = this.$route.query.param3 || null; |
| | | this.encryptedParams.param4 = this.$route.query.param4 || "1"; // é»è®¤ä¸ºé¨è¯ |
| | | |
| | | this.surveyType = parseInt(this.encryptedParams.param4) || 1; |
| | | |
| | | // å è½½é®å·æ°æ® |
| | | this.loadSurveyData(); |
| | | }, |
| | | |
| | | // å è½½è°æ¥æ°æ® |
| | | // å è½½è°æ¥æ°æ® |
| | | loadSurveyData() { |
| | | // è°ç¨æ¥å£è·åé®å·æ°æ® |
| | | getScriptByCondition(this.encryptedParams) |
| | | .then((res) => { |
| | | if (res.code === 200) { |
| | | if (res.data.result) { |
| | | this.accomplish = res.data.result; |
| | | return |
| | | } |
| | | // å¤çæ¥å£è¿åçæ°æ® |
| | | this.questionList = res.data.svyLibTemplateScriptVOS.map((item) => { |
| | | return { |
| | | ...item, |
| | | scriptResult: item.scriptType === 2 ? [] : null, |
| | | }; |
| | | }); |
| | | |
| | | // æ ¹æ®surveyType设置æ é¢åæè¿° |
| | | switch (this.surveyType) { |
| | | case 1: // é¨è¯ |
| | | this.surveyTitle = "é¨è¯æ»¡æåº¦è°æ¥"; |
| | | this.surveyDescription = |
| | | "亲ç±çæ£è
ï¼æè°¢æ¨éæ©æä»¬çå»çæå¡ã为äºä¸ææåæå¡è´¨éï¼è¯·æ¨è±å åéæ¶é´å¡«åæ¤é®å·ã"; |
| | | this.completionMessage = |
| | | "æè°¢æ¨å®è´µçæè§ï¼æä»¬å°ä¸ææ¹è¿é¨è¯æå¡è´¨éï¼ä¸ºæ¨æä¾æ´å¥½çå»çæå¡ä½éªã"; |
| | | break; |
| | | case 2: // ä½é¢ |
| | | this.surveyTitle = "ä½é¢æ»¡æåº¦è°æ¥"; |
| | | this.surveyDescription = |
| | | "亲ç±çæ£è
åå®¶å±ï¼æè°¢æ¨éæ©å¨æé¢ä½é¢æ²»çãä¸ºäºæåä½é¢æå¡è´¨éï¼è¯·æ¨å¡«åæ¤é®å·ã"; |
| | | this.completionMessage = |
| | | "æè°¢æ¨å¯¹æä»¬å·¥ä½çæ¯æï¼æä»¬å°æ ¹æ®æ¨çåé¦æç»æ¹è¿ä½é¢æå¡è´¨éï¼ç¥æ¨æ©æ¥åº·å¤ï¼"; |
| | | break; |
| | | case 3: // æè¯å»ºè®® |
| | | this.surveyTitle = "æè¯å»ºè®®åé¦"; |
| | | this.surveyDescription = |
| | | "å°æ¬ç客æ·ï¼æè°¢æ¨æ½åºå®è´µæ¶é´æä¾åé¦ãæ¨çæè§å¯¹æä»¬æ¹è¿æå¡é常éè¦ã"; |
| | | this.completionMessage = |
| | | "æè°¢æ¨çåé¦ï¼æä»¬å·²æ¶å°æ¨çæè¯/建议ï¼å°å°½å¿«å¤ç并䏿¨èç³»ã"; |
| | | break; |
| | | default: |
| | | this.useTestData(1); // é»è®¤ä½¿ç¨é¨è¯æ°æ® |
| | | } |
| | | } else { |
| | | // æ¥å£æ æ°æ®æå¤±è´¥ï¼ä½¿ç¨æµè¯æ°æ® |
| | | this.useTestData(this.surveyType); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | // æ¥å£è°ç¨å¤±è´¥ï¼ä½¿ç¨æµè¯æ°æ® |
| | | this.useTestData(this.surveyType); |
| | | }); |
| | | }, |
| | | |
| | | // ä½¿ç¨æµè¯æ°æ® |
| | | useTestData(surveyType) { |
| | | const type = [1, 2, 3].includes(surveyType) ? surveyType : 1; |
| | | const testData = this.testData[type]; |
| | | |
| | | this.surveyTitle = testData.title; |
| | | this.surveyDescription = testData.description; |
| | | this.questionList = testData.questions; |
| | | this.completionMessage = testData.completionMessage; |
| | | }, |
| | | |
| | | // æäº¤è°æ¥é®å·ï¼ç´æ¥æäº¤ï¼ä¸ç»è¿ç¼åï¼ |
| | | async submitSurvey() { |
| | | // éªè¯å¿
填项 |
| | | if (this.hasUnansweredRequiredQuestions()) { |
| | | this.$message.error("è¯·å®æææå¿
å¡«é®é¢ååæäº¤"); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | | const submitData = this.prepareSubmitData(); |
| | | const res = await saveMYDQuestionAnswer(submitData); |
| | | |
| | | if (res.code === 200) { |
| | | this.accomplish = false; |
| | | this.$message.success("æäº¤æåï¼æè°¢æ¨çåé¦ã"); |
| | | } else { |
| | | this.$message.error(res.msg || "æäº¤å¤±è´¥ï¼è¯·ç¨ååè¯"); |
| | | } |
| | | } catch (error) { |
| | | this.$message.error("ç½ç»éè¯¯ï¼æäº¤å¤±è´¥"); |
| | | console.error("æäº¤å¤±è´¥:", error); |
| | | } |
| | | }, |
| | | |
| | | // æ£æ¥æ¯å¦ææªåççå¿
å¡«é®é¢ |
| | | hasUnansweredRequiredQuestions() { |
| | | return this.questionList.some((question) => { |
| | | return ( |
| | | question.required && |
| | | (question.scriptResult === null || |
| | | question.scriptResult === "" || |
| | | (Array.isArray(question.scriptResult) && |
| | | question.scriptResult.length === 0)) |
| | | ); |
| | | }); |
| | | }, |
| | | |
| | | // åå¤æäº¤æ°æ® |
| | | // åå¤æäº¤æ°æ® |
| | | prepareSubmitData() { |
| | | return { |
| | | taskId: this.encryptedParams.param1, |
| | | serialnum: this.encryptedParams.param2 || this.encryptedParams.param3, |
| | | mzzy: this.surveyType, // 1=é¨è¯, 2=ä½é¢, 3=æè¯å»ºè®® |
| | | svyLibTemplateScriptVOS: this.questionList.map((item) => { |
| | | return { |
| | | scriptId: item.scriptId, |
| | | scriptType: item.scriptType, |
| | | scriptResult: |
| | | item.scriptType === 2 |
| | | ? (item.scriptResult || []).join("&") |
| | | : item.scriptResult || "", |
| | | nextScriptno: item.nextScriptno, |
| | | score: item.score, |
| | | prompt: item.prompt, |
| | | ...item, |
| | | }; |
| | | }), |
| | | excep: this.checkAbnormalOptions() ? 1 : 0, |
| | | }; |
| | | }, |
| | | |
| | | // æ£æ¥å¼å¸¸é项 |
| | | checkAbnormalOptions() { |
| | | return this.questionList.some((question) => { |
| | | if (!question.scriptResult) return false; |
| | | |
| | | if (question.scriptType === 1) { |
| | | // åéé¢å¼å¸¸æ£æ¥ |
| | | const selectedOption = question.svyLibTemplateTargetoptions.find( |
| | | (opt) => opt.optioncontent === question.scriptResult |
| | | ); |
| | | return selectedOption?.isabnormal; |
| | | } else if (question.scriptType === 2) { |
| | | // å¤éé¢å¼å¸¸æ£æ¥ |
| | | return question.scriptResult.some((answer) => { |
| | | const option = question.svyLibTemplateTargetoptions.find( |
| | | (opt) => opt.optioncontent === answer |
| | | ); |
| | | return option?.isabnormal; |
| | | }); |
| | | } |
| | | return false; |
| | | }); |
| | | }, |
| | | |
| | | // å¤çåéé项åå |
| | | handleOptionChange(selectedValue, index, question) { |
| | | const selectedOption = question.svyLibTemplateTargetoptions.find( |
| | | (option) => option.optioncontent === selectedValue |
| | | ); |
| | | |
| | | if (selectedOption) { |
| | | this.questionList[index].nextScriptno = selectedOption.nextQuestion; |
| | | this.questionList[index].score = selectedOption.score; |
| | | this.questionList[index].prompt = selectedOption.prompt; |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | /* åºç¡æ ·å¼åé */ |
| | | :root { |
| | | --primary-color: #1a73e8; /* é»è®¤èè² */ |
| | | --secondary-color: #34d399; /* é»è®¤ç»¿è² */ |
| | | --alert-color: #ed8936; /* é»è®¤æ©è² */ |
| | | } |
| | | |
| | | /* é¨è¯æ ·å¼åé */ |
| | | .survey-type-1 { |
| | | --primary-color: #1a73e8; /* å»çè */ |
| | | --secondary-color: #34d399; /* å¥åº·ç»¿ */ |
| | | --alert-color: #ed8936; /* è¦ç¤ºæ© */ |
| | | } |
| | | |
| | | /* ä½é¢æ ·å¼åé */ |
| | | .survey-type-2 { |
| | | --primary-color: #5a67d8; /* æ·±èç´« */ |
| | | --secondary-color: #667eea; /* æµ
èç´« */ |
| | | --alert-color: #f56565; /* è¦ç¤ºçº¢ */ |
| | | } |
| | | |
| | | /* æè¯å»ºè®®æ ·å¼åé */ |
| | | .survey-type-3 { |
| | | --primary-color: #e53e3e; /* ç´§æ¥çº¢ */ |
| | | --secondary-color: #f6ad55; /* è¦ç¤ºé» */ |
| | | --alert-color: #f56565; /* è¦ç¤ºçº¢ */ |
| | | } |
| | | |
| | | .questionnaire { |
| | | font-family: "PingFang SC", "Helvetica Neue", Arial, sans-serif; |
| | | min-height: 100vh; |
| | | margin: 0; |
| | | padding: 0; |
| | | color: #333; |
| | | transition: all 0.3s ease; |
| | | |
| | | /* æ ¹æ®surveyTypeåºç¨ä¸åçä¸»é¢ */ |
| | | &.survey-type-1 { |
| | | background-color: #f5f9fc; |
| | | --theme-gradient: linear-gradient(135deg, #1a73e8, #34d399); |
| | | } |
| | | |
| | | &.survey-type-2 { |
| | | background-color: #f8f9ff; |
| | | --theme-gradient: linear-gradient(135deg, #5a67d8, #667eea); |
| | | } |
| | | |
| | | &.survey-type-3 { |
| | | background-color: #fff5f5; |
| | | --theme-gradient: linear-gradient(135deg, #e53e3e, #f6ad55); |
| | | } |
| | | } |
| | | |
| | | .CONTENT { |
| | | max-width: 900px; |
| | | margin: 0 auto; |
| | | padding: 20px; |
| | | |
| | | .title { |
| | | color: var(--primary-color); |
| | | font-size: 28px; |
| | | font-weight: 600; |
| | | margin-bottom: 15px; |
| | | text-align: center; |
| | | letter-spacing: 0.5px; |
| | | position: relative; |
| | | |
| | | &::after { |
| | | content: ""; |
| | | position: absolute; |
| | | bottom: -8px; |
| | | left: 50%; |
| | | transform: translateX(-50%); |
| | | width: 60px; |
| | | height: 3px; |
| | | background: var(--theme-gradient); |
| | | border-radius: 3px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .preview-left { |
| | | margin: 20px 0; |
| | | margin-bottom: 100px; |
| | | background-color: #fff; |
| | | border-radius: 12px; |
| | | padding: 30px; |
| | | border: none; |
| | | box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); |
| | | transition: all 0.3s ease; |
| | | |
| | | &:hover { |
| | | box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .toptitle { |
| | | margin-bottom: 25px; |
| | | |
| | | div { |
| | | color: #4a5568; |
| | | font-size: 18px; |
| | | line-height: 1.6; |
| | | text-align: center; |
| | | } |
| | | } |
| | | |
| | | .el-divider { |
| | | background-color: #e2e8f0; |
| | | margin: 25px 0; |
| | | } |
| | | |
| | | .topic-dev { |
| | | margin-bottom: 30px; |
| | | font-size: 17px; |
| | | background-color: #f8fafc; |
| | | border-radius: 10px; |
| | | padding: 20px; |
| | | transition: all 0.3s ease; |
| | | position: relative; |
| | | overflow: hidden; |
| | | |
| | | &:hover { |
| | | background-color: #f1f5f9; |
| | | } |
| | | |
| | | /* æ·»å ç±»åæ è¯å°æ ç¾ */ |
| | | &::before { |
| | | content: ""; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 4px; |
| | | height: 100%; |
| | | background: var(--primary-color); |
| | | } |
| | | |
| | | .dev-text { |
| | | margin-bottom: 18px; |
| | | font-weight: 500; |
| | | color: #2d3748; |
| | | font-size: 18px; |
| | | line-height: 1.6; |
| | | |
| | | span[style*="color: #3ba2f7"] { |
| | | font-size: 14px; |
| | | margin-left: 8px; |
| | | color: var(--primary-color) !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .preview-lefts { |
| | | margin: 20px 0; |
| | | background-color: #fff; |
| | | border-radius: 12px; |
| | | padding: 40px; |
| | | min-height: 400px; |
| | | border: none; |
| | | box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | text-align: center; |
| | | |
| | | .completion-message { |
| | | padding: 40px; |
| | | max-width: 600px; |
| | | |
| | | .thank-you { |
| | | font-size: 32px; |
| | | color: var(--primary-color); |
| | | font-weight: 600; |
| | | margin-bottom: 25px; |
| | | position: relative; |
| | | display: inline-block; |
| | | |
| | | &::after { |
| | | content: ""; |
| | | position: absolute; |
| | | bottom: -10px; |
| | | left: 50%; |
| | | transform: translateX(-50%); |
| | | width: 80px; |
| | | height: 3px; |
| | | background: var(--theme-gradient); |
| | | border-radius: 3px; |
| | | } |
| | | } |
| | | |
| | | .feedback-message { |
| | | font-size: 20px; |
| | | line-height: 1.7; |
| | | color: #4a5568; |
| | | margin: 0 auto; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .red-star { |
| | | ::v-deep .el-radio__label, |
| | | ::v-deep .el-checkbox__label { |
| | | position: relative; |
| | | padding-right: 20px; |
| | | |
| | | &::after { |
| | | content: "*"; |
| | | color: #ef4444; |
| | | position: absolute; |
| | | right: 0; |
| | | top: 0; |
| | | font-size: 16px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | ::v-deep { |
| | | .el-checkbox-group { |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin: 15px 0; |
| | | gap: 12px; |
| | | } |
| | | |
| | | .el-radio-group { |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin: 15px 0; |
| | | gap: 12px; |
| | | } |
| | | |
| | | .el-radio.is-bordered, |
| | | .el-checkbox.is-bordered { |
| | | width: 100%; |
| | | margin-right: 0; |
| | | margin-bottom: 10px; |
| | | max-width: 400px; |
| | | padding: 14px 20px 14px 15px; |
| | | border-radius: 8px; |
| | | height: auto; |
| | | min-height: 50px; |
| | | border: 1px solid #e2e8f0; |
| | | transition: all 0.3s ease; |
| | | margin-left: 0 !important; |
| | | margin-top: 0 !important; |
| | | .el-radio-group, |
| | | .el-checkbox-group { |
| | | align-items: center; |
| | | } |
| | | &:hover { |
| | | border-color: var(--primary-color); |
| | | box-shadow: 0 2px 8px rgba(var(--primary-color), 0.15); |
| | | } |
| | | |
| | | &.is-checked { |
| | | border-color: var(--primary-color); |
| | | background-color: rgba(var(--primary-color), 0.05); |
| | | } |
| | | } |
| | | |
| | | .el-radio__label, |
| | | .el-checkbox__label { |
| | | font-size: 16px; |
| | | color: #2d3748; |
| | | } |
| | | |
| | | .el-alert--warning.is-light { |
| | | background-color: #fff8f0; |
| | | color: var(--alert-color); |
| | | margin-top: 15px; |
| | | border-radius: 8px; |
| | | border-left: 4px solid var(--alert-color); |
| | | |
| | | .el-alert__title { |
| | | font-size: 15px; |
| | | line-height: 1.6; |
| | | color: var(--alert-color); |
| | | } |
| | | |
| | | .el-alert__closebtn { |
| | | color: var(--alert-color); |
| | | } |
| | | } |
| | | |
| | | .el-textarea__inner { |
| | | font-size: 16px; |
| | | border-radius: 8px; |
| | | border: 1px solid #e2e8f0; |
| | | padding: 12px 15px; |
| | | transition: all 0.3s ease; |
| | | min-height: 100px; |
| | | |
| | | &:focus { |
| | | border-color: var(--primary-color); |
| | | box-shadow: 0 0 0 2px rgba(var(--primary-color), 0.2); |
| | | } |
| | | |
| | | &::placeholder { |
| | | color: #a0aec0; |
| | | } |
| | | } |
| | | |
| | | .el-radio__input.is-checked .el-radio__inner { |
| | | background-color: var(--primary-color); |
| | | border-color: var(--primary-color); |
| | | } |
| | | |
| | | .el-checkbox__input.is-checked .el-checkbox__inner { |
| | | background-color: var(--primary-color); |
| | | border-color: var(--primary-color); |
| | | } |
| | | |
| | | .el-radio__inner, |
| | | .el-checkbox__inner { |
| | | width: 18px; |
| | | height: 18px; |
| | | } |
| | | } |
| | | |
| | | .bottom-fixed { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | text-align: center; |
| | | padding: 10px 0; |
| | | background: var(--theme-gradient); |
| | | box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1); |
| | | z-index: 1000; |
| | | transition: all 0.3s ease; |
| | | |
| | | .el-button { |
| | | height: 56px; |
| | | font-size: 18px; |
| | | font-weight: 500; |
| | | letter-spacing: 0.5px; |
| | | border-radius: 8px; |
| | | background-color: #fff; |
| | | color: var(--primary-color); |
| | | border: none; |
| | | box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
| | | transition: all 0.3s ease; |
| | | width: 80%; |
| | | max-width: 400px; |
| | | position: relative; |
| | | overflow: hidden; |
| | | |
| | | &::before { |
| | | content: ""; |
| | | position: absolute; |
| | | top: 0; |
| | | left: -100%; |
| | | width: 100%; |
| | | height: 100%; |
| | | background: linear-gradient( |
| | | 90deg, |
| | | transparent, |
| | | rgba(255, 255, 255, 0.4), |
| | | transparent |
| | | ); |
| | | transition: all 0.5s ease; |
| | | } |
| | | |
| | | &:hover { |
| | | transform: translateY(-2px); |
| | | box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); |
| | | |
| | | &::before { |
| | | left: 100%; |
| | | } |
| | | } |
| | | |
| | | &:active { |
| | | transform: translateY(0); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* ååºå¼è®¾è®¡ */ |
| | | @media (max-width: 768px) { |
| | | .questionnaire { |
| | | .CONTENT { |
| | | padding: 15px; |
| | | } |
| | | |
| | | .preview-left, |
| | | .preview-lefts { |
| | | padding: 20px; |
| | | margin-bottom: 80px; |
| | | } |
| | | |
| | | .title { |
| | | font-size: 24px !important; |
| | | } |
| | | |
| | | .dev-text { |
| | | font-size: 16px !important; |
| | | } |
| | | |
| | | .bottom-fixed .el-button { |
| | | height: 50px; |
| | | font-size: 16px; |
| | | width: 90%; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | SeedetailsVisible: false, |
| | | options: [ |
| | | { |
| | | value: 1, |
| | | label: "çæµè¯ä¼°", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åºé¢é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "é¨è¯é访", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣æå
³æ", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "å¤è¯ç®¡ç", |
| | | }, |
| | | |
| | | { |
| | | value: 7, |
| | | label: "æ£è
æ¥å", |
| | | }, |
| | | |
| | | { |
| | | value: 9, |
| | | label: "使£é访", |
| | | }, |
| | | |
| | | { |
| | | value: 11, |
| | | label: "å½±åé访", |
| | | }, |
| | | { |
| | | value: 12, |
| | | label: "å¿çµé访", |
| | | }, |
| | | { |
| | | value: 13, |
| | | label: "ä¸ç
é访", |
| | | }, |
| | | ], |
| | | options: store.getters.tasktypes, |
| | | pickerOptions: { |
| | | disabledDate(time) { |
| | | return time.getTime() < Date.now() - 3600 * 1000 * 24; |