From 2d2377d39a33c21f6a5e5ba66d4b32a76170f503 Mon Sep 17 00:00:00 2001 From: heimawl <1785969728@qq.com> Date: 星期一, 17 七月 2023 15:44:18 +0800 Subject: [PATCH] 完成统计模块基本搭建 --- src/views/sfstatistics/propaganda/index.vue | 944 +++++++++++++++++ /dev/null | 17 src/views/sfstatistics/Voicedetail/index.vue | 369 ++++++ src/views/sfstatistics/analyse/index.vue | 96 + src/views/sfstatistics/statement/index.vue | 945 +++++++++++++++++ src/views/sfstatistics/percentage/index.vue | 877 +++++++++++++++ 6 files changed, 3,207 insertions(+), 41 deletions(-) diff --git a/src/views/sfstatistics/Voicedetail/index.vue b/src/views/sfstatistics/Voicedetail/index.vue index df47fb3..6fd8502 100644 --- a/src/views/sfstatistics/Voicedetail/index.vue +++ b/src/views/sfstatistics/Voicedetail/index.vue @@ -1,17 +1,374 @@ <template> - <div>澶嶈瘖缁熻</div> + <div class="Questionnairemanagement"> + <!-- 鍙充晶鏁版嵁 --> + <div class="leftvlue"> + <div class="leftvlue-top"> + <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> + <el-tab-pane name="Local"> + <span class="mulsz" slot="label">澶嶆煡缁熻 </span> + </el-tab-pane> + <el-tab-pane name="sharing"> + <span class="mulsz" slot="label">澶嶈瘖缁熻 </span> + </el-tab-pane> + </el-tabs> + </div> + </div> + <div class="viewbox"> + <div class="title-bot"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + label-width="98px" + > + <el-form-item 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="鎶曡瘔鎻愪氦鏃堕棿"> + <el-date-picker + v-model="queryParams.dateRange" + style="width: 240px" + value-format="yyyy-MM-dd" + type="daterange" + range-separator="-" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + ></el-date-picker> + </el-form-item> + <el-form-item label="绉戝锛�" prop="userName"> + <el-select v-model="queryParams.value2" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in ksoptions" + :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 gloptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-form> + </div> + <div class="viewhez"> + <div + id="fucazCharts" + class="sontwoactiveNamecaz" + style="width: 800px; height: 800px" + ></div> + <div + id="fucabCharts" + class="sontwoactiveNamecab" + style="width: 1300px; height: 800px" + ></div> + </div> + </div> + </div> </template> <script> +import Treeselect from "@riophae/vue-treeselect"; +import * as echarts from "echarts"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { + name: "questionnaire", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, data() { - return {}; + return { + topactiveName: "Local", //椤堕儴閫夋嫨 + fucazCharts: {}, + fucabCharts: {}, + queryParams: {}, + options: [ + { + value: 1, + label: "鎸夋湀浠�", + }, + { + value: 2, + label: "鎸夊搴�", + }, + { + value: 3, + label: "鎸夊勾", + }, + ], + ksoptions: [ + { + value: 1, + label: "楠ㄧ", + }, + { + value: 2, + label: "蹇冭剰绉�", + }, + { + value: 3, + label: "鍐呭垎娉岀", + }, + ], + gloptions: [ + { + value: 4, + label: "涓�鍙�", + }, + { + value: 2, + label: "浜屽彿", + }, + { + value: 3, + label: "涓夊彿", + }, + { + value: 1, + label: "鏃�", + }, + ], + }; + }, + watch: {}, + created() {}, + mounted() { + this.fucazCharts = document.getElementById("fucazCharts"); + this.fucabCharts = document.getElementById("fucabCharts"); + + console.log(this.fucazCharts); + console.log(this.fucabCharts); + + this.fucazChartsInit(); + this.fucabChartsInit(); }, - created() {}, - - methods: {}, + methods: { + fucazChartsInit() { + var fucazCharts = echarts.init(this.fucazCharts); + console.log(fucazCharts); + var option = { + tooltip: { + trigger: "item", + }, + legend: { + top: "5%", + left: "center", + }, + series: [ + { + name: "鍘熷洜褰掑睘", + type: "pie", + radius: ["40%", "70%"], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: 10, + borderColor: "#fff", + borderWidth: 2, + }, + label: { + show: false, + position: "center", + }, + emphasis: { + label: { + show: true, + fontSize: 40, + fontWeight: "bold", + }, + }, + labelLine: { + show: false, + }, + data: [ + { value: 1048, name: "涓嶉渶瑕佸璇�" }, + { value: 735, name: "娌℃湁鎰忎箟" }, + { value: 580, name: "涓嶇煡閬撴椂闂�" }, + { value: 484, name: "缁忔祹鍘熷洜" }, + { value: 300, name: "蹇樿澶嶈瘖" }, + { value: 200, name: "涓嶆柟渚挎潵闄㈠璇�" }, + { value: 200, name: "鍏朵粬鍖婚櫌澶嶈瘖" }, + { value: 100, name: "鍏朵粬" }, + ], + }, + ], + }; + // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� + fucazCharts.setOption(option); + }, + fucabChartsInit() { + var fucabCharts = echarts.init(this.fucabCharts); + console.log(fucabCharts); + var option = { + tooltip: { + trigger: "axis", + axisPointer: { + type: "cross", + crossStyle: { + color: "#999", + }, + }, + }, + toolbox: { + feature: { + dataView: { show: true, readOnly: false }, + magicType: { show: true, type: ["line", "bar"] }, + restore: { show: true }, + saveAsImage: { show: true }, + }, + }, + legend: { + data: ["鏈璇婃暟", "鍙婃椂澶嶈瘖鏁�", "鍙婃椂澶嶈瘖鐜�"], + }, + xAxis: [ + { + type: "category", + data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], + axisPointer: { + type: "shadow", + }, + }, + ], + yAxis: [ + { + type: "value", + name: "浜烘暟", + min: 0, + max: 250, + interval: 50, + axisLabel: { + formatter: "{value} ", + }, + }, + { + type: "value", + name: "鐧惧垎姣�", + min: 0, + max: 25, + interval: 5, + axisLabel: { + formatter: "{value} %", + }, + }, + ], + series: [ + { + name: "鏈璇婃暟", + type: "bar", + tooltip: { + valueFormatter: function (value) { + return value + " "; + }, + }, + data: [ + 47.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, + 3.3, + ], + }, + { + name: "鍙婃椂澶嶈瘖鏁�", + type: "bar", + tooltip: { + valueFormatter: function (value) { + return value + " "; + }, + }, + data: [ + 66.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, + 2.3, + ], + }, + { + name: "鍙婃椂澶嶈瘖鐜�", + type: "line", + yAxisIndex: 1, + tooltip: { + valueFormatter: function (value) { + return value + " %"; + }, + }, + data: [ + 7.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2, + ], + }, + ], + }; + // 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆� + fucabCharts.setOption(option); + }, + }, }; </script> -<style lang="scss" scoped></style> +<style lang="scss" scoped> +.Questionnairemanagement { +} + +::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 { + // display: flex; + // flex: 1; + 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; + } +} +.viewbox { + 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); + // height: 300px; + margin-top: 20px; + .title-bot { + padding: 20px; + } +} +.viewhez { + display: flex; + overflow: hidden; +} +</style> diff --git a/src/views/sfstatistics/analyse/index.vue b/src/views/sfstatistics/analyse/index.vue index 7972788..2313919 100644 --- a/src/views/sfstatistics/analyse/index.vue +++ b/src/views/sfstatistics/analyse/index.vue @@ -1,11 +1,79 @@ <template> - <div>鎸囨爣鍒嗘瀽</div> + <div class="indexanalysis"> + <div class="analysis-top"> + <div class="title-top">鏌ヨ鏉′欢</div> + <div class="value"> + <el-form ref="form" :model="form" label-width="120px"> + <el-form-item label="閫夋嫨鎸囨爣绫诲瀷"> + <el-select v-model="value" filterable 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> + </div> + </div> + <div class="formindex"> + <el-table :data="tableData" border style="width: 100%"> + <el-table-column prop="date" label="鎸囨爣绫诲瀷"> </el-table-column> + <el-table-column prop="name" label="鎸囨爣鍚嶇О"> </el-table-column> + <el-table-column prop="address" label="鍑虹幇娆℃暟"> </el-table-column> + <el-table-column prop="times" label="鎸囨爣绫诲瀷鍑虹幇娆℃暟"> + </el-table-column> + <el-table-column prop="proportion" label="鍗犳瘮"> </el-table-column> + </el-table> + </div> + </div> </template> <script> export default { + name: "indexanalysis", data() { - return {}; + return { + options: [ + { + value: "閫夐」1", + label: "鍙戠儹鏈夋棤", + }, + { + value: "閫夐」2", + label: "鍜冲椊鏈夋棤", + }, + { + value: "閫夐」3", + label: "鏈嶈嵂鍚庝笉鑹弽搴�", + }, + ], + tableData: [ + { + date: "鍙戠儹鏈夋棤", + name: "鏈�", + address: 1, + times: 2, + proportion: "50%", + }, + { + date: "鍙戠儹鏈夋棤", + name: "鏃�", + address: 1, + times: 2, + proportion: "50%", + }, + { + date: "鍙戠儹鏈夋棤", + name: "鍏朵粬", + address: 0, + times: 2, + proportion: "0%", + }, + ], + }; }, created() {}, @@ -14,4 +82,26 @@ }; </script> -<style lang="scss" scoped></style> +<style lang="scss" scoped> +.analysis-top { + 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); + margin: 15px; + .title-top { + background-color: #00bbd3; + color: #fff; + padding: 10px 20px; + font-size: 20px; + font-weight: 500; + margin-bottom: 20px; + } +} +.formindex { + margin: 0 15px; + 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); + padding: 20px; +} +</style> diff --git a/src/views/sfstatistics/percentage/index.vue b/src/views/sfstatistics/percentage/index.vue index cab048c..14a3057 100644 --- a/src/views/sfstatistics/percentage/index.vue +++ b/src/views/sfstatistics/percentage/index.vue @@ -1,17 +1,884 @@ <template> - <div>闅忚缁熻</div> + <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 class="leftvlue-top"> + <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> + <el-tab-pane name="Local"> + <span class="mulsz" slot="label">鎸夊嚭闄㈢梾鍖虹粺璁� </span> + </el-tab-pane> + <el-tab-pane name="sharing"> + <span class="mulsz" slot="label">鎸夊嚭闄㈢瀹ょ粺璁� </span> + </el-tab-pane> + </el-tabs> + </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> +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"; export default { + name: "questionnaire", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, data() { - return {}; + 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: [ + { + 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); + }, + }, + ], + }, + 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); + }, + }, + ], + }, + // 鏌ヨ鏍囩鍒楄〃鍙傛暟 + 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 }, + ], + // 琛ㄥ崟鏍¢獙 + // 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: {}, + created() { + this.getList(); + this.gitclasify(); }, - created() {}, + 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: "", + }; + }, - methods: {}, + // 琛ㄥ崟閲嶇疆 + 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> +<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 { + // 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/propaganda/index.vue b/src/views/sfstatistics/propaganda/index.vue index c957b81..6d5b549 100644 --- a/src/views/sfstatistics/propaganda/index.vue +++ b/src/views/sfstatistics/propaganda/index.vue @@ -1,17 +1,951 @@ <template> - <div>瀹f暀缁熻</div> + <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 class="leftvlue-top"> + <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> + <el-tab-pane name="Local"> + <span class="mulsz" slot="label">鎸夊嚭闄㈢梾鍖虹粺璁� </span> + </el-tab-pane> + <el-tab-pane name="sharing"> + <span class="mulsz" slot="label">鎸夊嚭闄㈢瀹ょ粺璁� </span> + </el-tab-pane> + </el-tabs> + </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 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="瀹f暀" + align="center" + key="updateTime" + prop="updateTime" + > + </el-table-column> + + <el-table-column + label="瀹f暀鏇存柊鏃ユ湡" + align="center" + key="tagdescription" + prop="tagdescription" + width="110" + > + </el-table-column> + <el-table-column + label="绠$悊鏂规" + align="center" + key="isupload" + prop="isupload" + > + </el-table-column> + <el-table-column + label="闅忚浠诲姟鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="闅忚瀹屾垚鐜�" + align="center" + key="isupload" + prop="isupload" + width="100" + > + </el-table-column> + <el-table-column + label="AI澶栧懠娆℃暟" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="AI闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="AI闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="寰俊鍙戦�佹鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="寰俊闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="寰俊闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="鐭俊鍙戦�佹鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="鐭俊闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="鐭俊闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚娆℃暟" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </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-s-data"></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-share"></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> + <!-- 鍗曢灞曠ず寮规 --> + <el-dialog :visible.sync="topicVisible" width="45%"> + <div class="topicdia"> + <div class="top-text">{{ topicvalue.name }}</div> + <div class="top-mintext">闅忚瀹屾垚鏁皗{ topicvalue.number }}</div> + <div style="overflow-x: hidden; overflow-y: auto; max-height: 65vh"> + <div class="ttaabbcc" v-for="item in topiclist" :key="item.name"> + <div class="describe"> + 绗瑊{ item.number }}棰橈細 {{ item.name }}?<span + >[{{ item.type == 1 ? "鍗曢�夐" : "澶氶�夐" }}]</span + > + </div> + <div> + <el-table :data="tableData" style="width: 100%"> + <el-table-column prop="date" label="闂閫夐」"> + </el-table-column> + <el-table-column prop="name" label="閫夋嫨浜烘暟"> + </el-table-column> + <el-table-column prop="address" label="姣斾緥"> </el-table-column> + </el-table> + </div> + </div> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="topicVisible = false">鍏� 闂�</el-button> + </span> + </el-dialog> + <!-- 缁撴灉缁熻寮规 --> + <el-dialog title="鎻愮ず" :visible.sync="consequenceVisible" width="50%"> + <div class="topicdia"> + <div class="top-text" style="margin-bottom: 20px">瀹f暀缁熻缁撴灉</div> + <div> + <el-table :data="tableData" style="width: 100%"> + <el-table-column prop="date" label="鎮h�呭鍚�"> </el-table-column> + <el-table-column prop="namea" label="鎬у埆"> </el-table-column> + <el-table-column prop="namec" label="骞撮緞"> </el-table-column> + <el-table-column prop="named" label="鑱旂郴鏂瑰紡"> </el-table-column> + <el-table-column prop="namee" label="璁″垝鎵ц鏃堕棿" width="120"> + </el-table-column> + <el-table-column prop="namex" label="瀹為檯瀹屾垚鏃堕棿" width="120"> + </el-table-column> + <el-table-column prop="namez" label="瀹屾垚鏂瑰紡"> </el-table-column> + <el-table-column prop="nameh" label="瀹f暀"> </el-table-column> + <el-table-column prop="namej" label="寰楀垎"> </el-table-column> + <!-- 鎴彇鍑犲垪閫夐」灞炴�у悕缁存姢鏁扮粍閬嶅巻 --> + <!-- <el-table-column prop="namet"> + <template slot="header" slot-scope="scope"> + <div>{{ scope.row.name }}<span>[鍗曢�夐]</span></div> + </template> + </el-table-column> --> + </el-table> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="consequenceVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="consequenceVisible = false" + >纭� 瀹�</el-button + > + </span> + </el-dialog> + </div> </template> <script> +import { + toamendtag, + addapitag, + deletetag, + changetagcategory, + listtag, +} from "@/api/system/label"; + +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { + name: "questionnaire", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, data() { - return {}; + return { + topactiveName: "Local", //椤堕儴閫夋嫨 + activeName: "first", + // 閬僵灞� + loading: false, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + idds: "", //鍒嗙被id + // 鎬绘潯鏁� + total: 0, + lstamendtag: false, //鏄惁淇敼鏍囩 + topicVisible: false, //鎺у埗鍗曢寮规 + consequenceVisible: false, //鎺у埗缁撴灉寮规 + //淇敼娣诲姞鏍囩寮规鏁版嵁 + tagform: { + isupload: "", + tagname: "", + tagcategoryid: "", + tagdescription: "", + }, + topicvalue: { + name: "楠ㄧ闅忚妯$増", + number: 222, + }, + classifyform: { + categoryname: "", + }, + topiclist: [ + { + name: "鎮ㄧ殑韬綋搴峰鎯呭喌濡備綍", + number: 1, + type: 1, + }, + { + name: "鎮ㄧ殑楗鎯呭喌濡備綍", + number: 2, + type: 2, + }, + { + name: "鎮ㄧ殑鎭㈠鎯呭喌濡備綍", + number: 3, + type: 1, + }, + ], + tableData: [ + { + date: "濂�", + name: 12, + address: "50%", + }, + { + date: "涓�鑸�", + name: 2, + address: "6.2%", + }, + { + date: "宸�", + name: 0, + address: "0%", + }, + ], + // 鏍囩琛ㄦ牸鏁版嵁 + 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: [ + { + 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); + }, + }, + ], + }, + 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); + }, + }, + ], + }, + // 鏌ヨ鏍囩鍒楄〃鍙傛暟 + 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 }, + ], + // 琛ㄥ崟鏍¢獙 + // 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: {}, + created() { + this.getList(); + this.gitclasify(); }, - created() {}, + 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: "", + }; + }, - methods: {}, + // 琛ㄥ崟閲嶇疆 + 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"); + }, + //鍗曢寮规 + handleUpdate() { + this.topicVisible = true; + }, + //缁撴灉寮规 + handleDelete() { + this.consequenceVisible = true; + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + 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; + }, + + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download( + "base/tag/export", + { + ...this.topqueryParams, + }, + `user_${new Date().getTime()}.xlsx` + ); + }, + }, }; </script> -<style lang="scss" scoped></style> +<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; + } +} +.topicdia { + text-align: center; + margin: 0 20px; + + // overflow: scroll; + + .top-text { + font-size: 25px; + font-weight: 600; + } + .top-mintext { + color: #bdae25; + font-size: 15px; + margin: 10px 0; + } + .ttaabbcc { + // 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); + margin: 15px 0; + margin-top: 30px; + padding: 30px; + } + .describe { + text-align: left; + margin-bottom: 20px; + span { + color: rgb(23, 140, 235); + margin-left: 5px; + } + } +} +::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 { + // 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 { + font-size: 18px; + color: rgb(35, 81, 233); +} +.button-textsc { + font-size: 18px; + + color: rgb(23, 140, 235); +} +</style> diff --git a/src/views/sfstatistics/review/index.vue b/src/views/sfstatistics/review/index.vue deleted file mode 100644 index 7f55ecf..0000000 --- a/src/views/sfstatistics/review/index.vue +++ /dev/null @@ -1,17 +0,0 @@ -<template> - <div>澶嶆煡閫氱煡</div> -</template> - -<script> -export default { - data() { - return {}; - }, - - created() {}, - - methods: {}, -}; -</script> - -<style lang="scss" scoped></style> diff --git a/src/views/sfstatistics/statement/index.vue b/src/views/sfstatistics/statement/index.vue index 6e46b0b..72a380e 100644 --- a/src/views/sfstatistics/statement/index.vue +++ b/src/views/sfstatistics/statement/index.vue @@ -1,17 +1,952 @@ <template> - <div>闂嵎缁熻</div> + <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 class="leftvlue-top"> + <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> + <el-tab-pane name="Local"> + <span class="mulsz" slot="label">鎸夊嚭闄㈢梾鍖虹粺璁� </span> + </el-tab-pane> + <el-tab-pane name="sharing"> + <span class="mulsz" slot="label">鎸夊嚭闄㈢瀹ょ粺璁� </span> + </el-tab-pane> + </el-tabs> + </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 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" + > + </el-table-column> + + <el-table-column + label="闂嵎鏇存柊鏃ユ湡" + align="center" + key="tagdescription" + prop="tagdescription" + width="110" + > + </el-table-column> + <el-table-column + label="绠$悊鏂规" + align="center" + key="isupload" + prop="isupload" + > + </el-table-column> + <el-table-column + label="闅忚浠诲姟鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="闅忚瀹屾垚鐜�" + align="center" + key="isupload" + prop="isupload" + width="100" + > + </el-table-column> + <el-table-column + label="AI澶栧懠娆℃暟" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="AI闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="AI闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="寰俊鍙戦�佹鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="寰俊闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="寰俊闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="鐭俊鍙戦�佹鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="鐭俊闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="鐭俊闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚娆℃暟" + align="center" + key="tagdescription" + prop="tagdescription" + width="100" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚瀹屾垚鏁�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + <el-table-column + label="浜哄伐闅忚瀹屾垚鐜�" + align="center" + key="tagdescription" + prop="tagdescription" + width="120" + > + </el-table-column> + + <el-table-column + fixed="right" + 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-s-data"></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-share"></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> + <!-- 鍗曢灞曠ず寮规 --> + <el-dialog :visible.sync="topicVisible" width="45%"> + <div class="topicdia"> + <div class="top-text">{{ topicvalue.name }}</div> + <div class="top-mintext">闅忚瀹屾垚鏁皗{ topicvalue.number }}</div> + <div style="overflow-x: hidden; overflow-y: auto; max-height: 65vh"> + <div class="ttaabbcc" v-for="item in topiclist" :key="item.name"> + <div class="describe"> + 绗瑊{ item.number }}棰橈細 {{ item.name }}?<span + >[{{ item.type == 1 ? "鍗曢�夐" : "澶氶�夐" }}]</span + > + </div> + <div> + <el-table :data="tableData" style="width: 100%"> + <el-table-column prop="date" label="闂閫夐」"> + </el-table-column> + <el-table-column prop="name" label="閫夋嫨浜烘暟"> + </el-table-column> + <el-table-column prop="address" label="姣斾緥"> </el-table-column> + </el-table> + </div> + </div> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="topicVisible = false">鍏� 闂�</el-button> + </span> + </el-dialog> + <!-- 缁撴灉缁熻寮规 --> + <el-dialog title="鎻愮ず" :visible.sync="consequenceVisible" width="50%"> + <div class="topicdia"> + <div class="top-text" style="margin-bottom: 20px">闂嵎缁熻缁撴灉</div> + <div> + <el-table :data="tableData" style="width: 100%"> + <el-table-column prop="date" label="鎮h�呭鍚�"> </el-table-column> + <el-table-column prop="namea" label="鎬у埆"> </el-table-column> + <el-table-column prop="namec" label="骞撮緞"> </el-table-column> + <el-table-column prop="named" label="鑱旂郴鏂瑰紡"> </el-table-column> + <el-table-column prop="namee" label="璁″垝鎵ц鏃堕棿" width="120"> + </el-table-column> + <el-table-column prop="namex" label="瀹為檯瀹屾垚鏃堕棿" width="120"> + </el-table-column> + <el-table-column prop="namez" label="瀹屾垚鏂瑰紡"> </el-table-column> + <el-table-column prop="nameh" label="闂嵎"> </el-table-column> + <el-table-column prop="namej" label="寰楀垎"> </el-table-column> + <!-- 鎴彇鍑犲垪閫夐」灞炴�у悕缁存姢鏁扮粍閬嶅巻 --> + <!-- <el-table-column prop="namet"> + <template slot="header" slot-scope="scope"> + <div>{{ scope.row.name }}<span>[鍗曢�夐]</span></div> + </template> + </el-table-column> --> + </el-table> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="consequenceVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="consequenceVisible = false" + >纭� 瀹�</el-button + > + </span> + </el-dialog> + </div> </template> <script> +import { + toamendtag, + addapitag, + deletetag, + changetagcategory, + listtag, +} from "@/api/system/label"; + +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { + name: "questionnaire", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, data() { - return {}; + return { + topactiveName: "Local", //椤堕儴閫夋嫨 + activeName: "first", + // 閬僵灞� + loading: false, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + idds: "", //鍒嗙被id + // 鎬绘潯鏁� + total: 0, + lstamendtag: false, //鏄惁淇敼鏍囩 + topicVisible: false, //鎺у埗鍗曢寮规 + consequenceVisible: false, //鎺у埗缁撴灉寮规 + //淇敼娣诲姞鏍囩寮规鏁版嵁 + tagform: { + isupload: "", + tagname: "", + tagcategoryid: "", + tagdescription: "", + }, + topicvalue: { + name: "楠ㄧ闅忚妯$増", + number: 222, + }, + classifyform: { + categoryname: "", + }, + topiclist: [ + { + name: "鎮ㄧ殑韬綋搴峰鎯呭喌濡備綍", + number: 1, + type: 1, + }, + { + name: "鎮ㄧ殑楗鎯呭喌濡備綍", + number: 2, + type: 2, + }, + { + name: "鎮ㄧ殑鎭㈠鎯呭喌濡備綍", + number: 3, + type: 1, + }, + ], + tableData: [ + { + date: "濂�", + name: 12, + address: "50%", + }, + { + date: "涓�鑸�", + name: 2, + address: "6.2%", + }, + { + date: "宸�", + name: 0, + address: "0%", + }, + ], + // 鏍囩琛ㄦ牸鏁版嵁 + 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: [ + { + 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); + }, + }, + ], + }, + 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); + }, + }, + ], + }, + // 鏌ヨ鏍囩鍒楄〃鍙傛暟 + 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 }, + ], + // 琛ㄥ崟鏍¢獙 + // 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: {}, + created() { + this.getList(); + this.gitclasify(); }, - created() {}, + 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: "", + }; + }, - methods: {}, + // 琛ㄥ崟閲嶇疆 + 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"); + }, + //鍗曢寮规 + handleUpdate() { + this.topicVisible = true; + }, + //缁撴灉寮规 + handleDelete() { + this.consequenceVisible = true; + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + 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; + }, + + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download( + "base/tag/export", + { + ...this.topqueryParams, + }, + `user_${new Date().getTime()}.xlsx` + ); + }, + }, }; </script> -<style lang="scss" scoped></style> +<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; + } +} +.topicdia { + text-align: center; + margin: 0 20px; + + // overflow: scroll; + + .top-text { + font-size: 25px; + font-weight: 600; + } + .top-mintext { + color: #bdae25; + font-size: 15px; + margin: 10px 0; + } + .ttaabbcc { + // 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); + margin: 15px 0; + margin-top: 30px; + padding: 30px; + } + .describe { + text-align: left; + margin-bottom: 20px; + span { + color: rgb(23, 140, 235); + margin-left: 5px; + } + } +} +::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 { + // 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 { + font-size: 18px; + color: rgb(35, 81, 233); +} +.button-textsc { + font-size: 18px; + + color: rgb(23, 140, 235); +} +</style> -- Gitblit v1.9.3