From 41f11d5fd764a2bc7e8463a70bb340467d99a3ca Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 14 七月 2023 09:42:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/UBCS-WEB/dist/src/views/system/tenant.vue | 579 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 579 insertions(+), 0 deletions(-)
diff --git a/Source/UBCS-WEB/dist/src/views/system/tenant.vue b/Source/UBCS-WEB/dist/src/views/system/tenant.vue
new file mode 100644
index 0000000..9fae7ab
--- /dev/null
+++ b/Source/UBCS-WEB/dist/src/views/system/tenant.vue
@@ -0,0 +1,579 @@
+<template>
+ <basic-container>
+ <avue-crud :option="option"
+ :table-loading="loading"
+ :data="data"
+ ref="crud"
+ v-model="form"
+ :page.sync="page"
+ :permission="permissionList"
+ :before-open="beforeOpen"
+ @row-del="rowDel"
+ @row-update="rowUpdate"
+ @row-save="rowSave"
+ @search-change="searchChange"
+ @search-reset="searchReset"
+ @selection-change="selectionChange"
+ @current-change="currentChange"
+ @size-change="sizeChange"
+ @refresh-change="refreshChange"
+ @on-load="onLoad">
+ <template slot="menuLeft">
+ <el-button type="danger"
+ size="small"
+ icon="el-icon-delete"
+ v-if="permission.tenant_delete"
+ plain
+ @click="handleDelete">鍒� 闄�
+ </el-button>
+ <el-tooltip class="item" effect="dark" content="缁欑鎴烽厤缃处鍙烽搴︺�佽繃鏈熸椂闂寸瓑鎺堟潈淇℃伅" placement="top">
+ <el-button size="small"
+ plain
+ v-if="userInfo.role_name.includes('administrator')"
+ icon="el-icon-setting"
+ @click="handleSetting">鎺堟潈閰嶇疆
+ </el-button>
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="缁欑鎴烽厤缃嫭绔嬫暟鎹簮浠ュ疄鐜版暟鎹簱闅旂" placement="top">
+ <el-button size="small"
+ plain
+ v-if="userInfo.role_name.includes('administrator')"
+ icon="el-icon-coin"
+ @click="handleDatasource">鏁版嵁婧愰厤缃�
+ </el-button>
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="灏嗚彍鍗曚骇鍝佸寘涓庣鎴烽厤缃粦瀹�" placement="top">
+ <el-button size="small"
+ plain
+ v-if="userInfo.role_name.includes('administrator')"
+ icon="el-icon-notebook-1"
+ @click="handlePackage">浜у搧鍖呴厤缃�
+ </el-button>
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="灏嗚嚜瀹氫箟鐨勮彍鍗曢泦鍚堝畾鍒朵负绉熸埛缁戝畾鐨勮彍鍗曚骇鍝佸寘" placement="top">
+ <el-button size="small"
+ plain
+ v-if="userInfo.role_name.includes('administrator')"
+ icon="el-icon-notebook-2"
+ @click="handlePackageSetting">浜у搧鍖呯鐞�
+ </el-button>
+ </el-tooltip>
+ </template>
+ <template slot-scope="{row}"
+ slot="accountNumber">
+ <el-tag>{{ row.accountNumber > 0 ? row.accountNumber : '涓嶉檺鍒�' }}</el-tag>
+ </template>
+ <template slot-scope="{row}"
+ slot="expireTime">
+ <el-tag>{{ row.expireTime ? row.expireTime : '涓嶉檺鍒�' }}</el-tag>
+ </template>
+ </avue-crud>
+
+ <el-dialog title="绉熸埛鏁版嵁婧愰厤缃�"
+ append-to-body
+ :visible.sync="datasourceBox"
+ width="450px">
+ <avue-form :option="datasourceOption" v-model="datasourceForm" @submit="handleDatasourceSubmit"/>
+ </el-dialog>
+ <el-dialog title="绉熸埛浜у搧鍖呴厤缃�"
+ append-to-body
+ :visible.sync="packageBox"
+ width="450px">
+ <avue-form ref="formPackage" :option="packageOption" v-model="packageForm" @submit="handlePackageSubmit"/>
+ </el-dialog>
+ <el-dialog title="绉熸埛浜у搧鍖呯鐞�"
+ append-to-body
+ :visible.sync="packageSettingBox"
+ width="1000px">
+ <tenant-package></tenant-package>
+ </el-dialog>
+ </basic-container>
+</template>
+
+<script>
+import {
+ getList,
+ getDetail,
+ remove,
+ update,
+ add,
+ setting,
+ datasource,
+ packageInfo,
+ packageSetting
+} from "@/api/system/tenant";
+import {getDetail as packageDetail} from "@/api/system/tenantpackage";
+import {mapGetters} from "vuex";
+import {getMenuTree} from "@/api/system/menu";
+import {validatenull} from "@/util/validate";
+
+export default {
+ data() {
+ return {
+ form: {},
+ selectionList: [],
+ query: {},
+ loading: true,
+ box: false,
+ datasourceBox: false,
+ packageBox: false,
+ packageSettingBox: false,
+ page: {
+ pageSize: 10,
+ currentPage: 1,
+ total: 0
+ },
+ option: {
+ height: 'auto',
+ calcHeight: 30,
+ tip: false,
+ searchShow: true,
+ searchMenuSpan: 6,
+ border: true,
+ index: true,
+ selection: true,
+ viewBtn: true,
+ dialogWidth: 900,
+ dialogClickModal: false,
+ column: [
+
+ {
+ label: "绉熸埛ID",
+ prop: "tenantId",
+ width: 100,
+ search: true,
+ addDisplay: false,
+ editDisplay: false,
+ span: 24,
+ rules: [{
+ required: true,
+ message: "璇疯緭鍏ョ鎴稩D",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "鍏ㄧО",
+ prop: "fullName",
+ width: 120,
+ span:24,
+ rules: [{
+ required: true,
+ message: "璇疯緭鍏ュ叏绉�",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "绉熸埛鍚嶇О",
+ prop: "tenantName",
+ search: true,
+ width: 180,
+ span: 24,
+ rules: [{
+ required: true,
+ message: "璇疯緭鍏ュ弬鏁板悕绉�",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "鑱旂郴浜�",
+ prop: "linkman",
+ width: 150,
+ search: true,
+ rules: [{
+ required: true,
+ message: "璇疯緭鍏ヨ仈绯讳汉",
+ trigger: "blur"
+ }]
+ },
+ {
+ label: "鑱旂郴鐢佃瘽",
+ prop: "contactNumber",
+ width: 150,
+ },
+ {
+ label: "鑱旂郴鍦板潃",
+ prop: "address",
+ span: 24,
+ minRows: 2,
+ type: "textarea",
+ hide: true,
+ },
+ {
+ label: '寮�鍚笁鍛�',
+ prop: 'ssaEnable',
+ type: 'radio',
+ width: 100,
+ value:0,
+ disabled:Boolean,
+ dicData: [{
+ label: '寮�鍚�',
+ value: 0
+ }, {
+ label: '涓嶅紑鍚�',
+ value: 1
+ },],
+ },
+ {
+ label: "缁戝畾鍩熷悕",
+ prop: "domainUrl",
+ span: 24,
+ },
+ {
+ label: "绯荤粺鑳屾櫙",
+ prop: "backgroundUrl",
+ type: 'upload',
+ listType: 'picture-img',
+ dataType: 'string',
+ action: '/api/ubcs-resource/oss/endpoint/put-file',
+ propsHttp: {
+ res: 'data',
+ url: 'link',
+ },
+ hide: true,
+ span: 24,
+ },
+ ]
+ },
+ data: [],
+ settingForm: {},
+ settingOption: {
+ column: [
+ {
+ label: "璐﹀彿棰濆害",
+ prop: "accountNumber",
+ type: "number",
+ span: 24,
+ },
+ {
+ label: "杩囨湡鏃堕棿",
+ prop: "expireTime",
+ type: "date",
+ format: "yyyy-MM-dd hh:mm:ss",
+ valueFormat: "yyyy-MM-dd hh:mm:ss",
+ span: 24,
+ },
+ ]
+ },
+ datasourceForm: {},
+ datasourceOption: {
+ column: [
+ {
+ label: "鏁版嵁婧�",
+ prop: "datasourceId",
+ search: true,
+ span: 24,
+ type: "select",
+ dicUrl: "/api/ubcs-develop/datasource/select",
+ props: {
+ label: "name",
+ value: "id"
+ },
+ rules: [{
+ required: true,
+ message: "璇烽�夋嫨鏁版嵁婧�",
+ trigger: "blur"
+ }]
+ },
+ ]
+ },
+ packageForm: {},
+ packageOption: {
+ column: [
+ {
+ label: "浜у搧鍖�",
+ prop: "packageId",
+ search: true,
+ span: 24,
+ type: "select",
+ dicUrl: "/api/ubcs-system/tenant-package/select",
+ props: {
+ label: "packageName",
+ value: "id"
+ }
+ },
+ {
+ label: "鑿滃崟棰勮",
+ prop: "menuId",
+ span: 24,
+ type: "tree",
+ dicData: [],
+ hide: true,
+ multiple: true,
+ props: {
+ label: "title"
+ },
+ },
+ ]
+ },
+ };
+ },
+
+ created() {
+ // 鑾峰彇鍒皌rue杩樻槸false鐩存帴璧嬪�硷紝瀹氫箟鏂规硶浼氬氨鏄幏鍙栦笉鍒帮紝涓嶇煡閬撲粈涔堥棶棰橈紝寮哄埗鐢↗SON.parse浼氬湪鍚庨潰杩藉姞涓�涓猟isabled锛屾墍浠ョ洿鎺ヨ幏鍙栥�傚悗鏈熷鏋滄坊鍔燾loumn浼氬嚭鐜癰ug锛岀敤foreach寰幆鍑篶olumn鍦ㄥ垽鏂璽ype鏄惁绛変簬radio锛岀劧鍚庡皢鍗曠嫭radio鐨刣isabled鏀逛负res.data.data
+ this.$axios.get('/api/ubcs-system/tenant/find-ssa-enable').then(res => {
+ this.option.column[6].disabled= res.data.data
+ });
+ },
+ watch: {
+ 'packageForm.packageId'() {
+ if (!validatenull(this.packageForm.packageId)) {
+ packageDetail(this.packageForm.packageId).then(res => {
+ this.packageForm.menuId = res.data.data.menuId;
+ this.initData();
+ });
+ }
+ }
+ },
+ computed: {
+ ...mapGetters(["userInfo", "permission"]),
+ permissionList() {
+ return {
+ addBtn: this.vaildData(this.permission.tenant_add, false),
+ viewBtn: this.vaildData(this.permission.tenant_view, false),
+ delBtn: this.vaildData(this.permission.tenant_delete, false),
+ editBtn: this.vaildData(this.permission.tenant_edit, false)
+ };
+ },
+ ids() {
+ let ids = [];
+ this.selectionList.forEach(ele => {
+ ids.push(ele.id);
+ });
+ return ids.join(",");
+ },
+ tenantId() {
+ return this.selectionList[0].tenantId;
+ }
+ },
+ methods: {
+ initData() {
+ getMenuTree().then(res => {
+ const column = this.findObject(this.packageOption.column, "menuId");
+ column.dicData = res.data.data;
+ });
+ },
+ rowSave(row, done, loading) {
+ add(row).then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!"
+ });
+ done();
+ console.log(done)
+ }, error => {
+ window.console.log(error);
+ loading();
+ });
+ },
+ rowUpdate(row, index, done, loading) {
+ update(row).then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!"
+ });
+ done();
+ }, error => {
+ window.console.log(error);
+ loading();
+ });
+ },
+ rowDel(row) {
+ this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(row.id);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!"
+ });
+ });
+ },
+ beforeOpen(done, type) {
+ if (["view"].includes(type)) {
+ getDetail(this.form.id).then(res => {
+ const data = res.data.data;
+ if (!(data.accountNumber > 0)) {
+ data.accountNumber = "涓嶉檺鍒�";
+ }
+ if (!data.expireTime) {
+ data.expireTime = "涓嶉檺鍒�";
+ }
+ this.form = data;
+ });
+ }
+ done();
+ },
+ searchReset() {
+ this.query = {};
+ this.onLoad(this.page);
+ },
+ searchChange(params, done) {
+ this.query = params;
+ this.page.currentPage = 1;
+ this.onLoad(this.page, params);
+ done();
+ },
+ selectionChange(list) {
+ this.selectionList = list;
+ },
+ selectionClear() {
+ this.selectionList = [];
+ this.$refs.crud.toggleSelection();
+ },
+ handleDelete() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ return;
+ }
+ this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(this.ids);
+ })
+ .then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "鎿嶄綔鎴愬姛!"
+ });
+ this.$refs.crud.toggleSelection();
+ });
+ },
+ handleSetting() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ return;
+ }
+ if (this.selectionList.length === 1) {
+ getDetail(this.selectionList[0].id).then(res => {
+ const data = res.data.data;
+ this.settingForm.accountNumber = data.accountNumber;
+ this.settingForm.expireTime = data.expireTime;
+ });
+ } else {
+ this.settingForm.accountNumber = -1;
+ this.settingForm.expireTime = '';
+ }
+ this.box = true;
+ },
+ handleDatasource() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ return;
+ }
+ if (this.selectionList.length !== 1) {
+ this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�");
+ return;
+ }
+ getDetail(this.selectionList[0].id).then(res => {
+ const data = res.data.data;
+ this.datasourceForm.datasourceId = data.datasourceId;
+ });
+ this.datasourceBox = true;
+ },
+ handlePackage() {
+ if (this.selectionList.length === 0) {
+ this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ return;
+ }
+ if (this.selectionList.length !== 1) {
+ this.$message.warning("鍙兘閫夋嫨涓�鏉℃暟鎹�");
+ return;
+ }
+ if (this.selectionList.length === 1) {
+ packageInfo(this.selectionList[0].id).then(res => {
+ const data = res.data.data;
+ this.packageForm.packageId = data.id;
+ this.packageForm.menuId = data.menuId;
+ });
+ } else {
+ this.packageForm.menuId = '';
+ }
+ this.packageBox = true;
+ //鏇存柊瀛楀吀杩滅▼鏁版嵁
+ setTimeout(() => {
+ const form = this.$refs.formPackage;
+ form.updateDic('packageId');
+ }, 10);
+ },
+ handlePackageSetting() {
+ this.packageSettingBox = true;
+ },
+ handleSubmit(form, done, loading) {
+ setting(this.ids, form).then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "閰嶇疆鎴愬姛!"
+ });
+ done();
+ this.box = false;
+ }, error => {
+ window.console.log(error);
+ loading();
+ });
+ },
+ handleDatasourceSubmit(form, done, loading) {
+ datasource(this.tenantId, form.datasourceId).then(() => {
+ this.$message({
+ type: "success",
+ message: "閰嶇疆鎴愬姛!"
+ });
+ done();
+ this.datasourceBox = false;
+ }, error => {
+ window.console.log(error);
+ loading();
+ });
+ },
+ handlePackageSubmit(form, done, loading) {
+ packageSetting(this.tenantId, form.packageId).then(() => {
+ this.onLoad(this.page);
+ this.$message({
+ type: "success",
+ message: "閰嶇疆鎴愬姛!"
+ });
+ done();
+ this.packageBox = false;
+ }, error => {
+ window.console.log(error);
+ loading();
+ });
+ },
+ currentChange(currentPage) {
+ this.page.currentPage = currentPage;
+ },
+ sizeChange(pageSize) {
+ this.page.pageSize = pageSize;
+ },
+ refreshChange() {
+ this.onLoad(this.page, this.query);
+ },
+ onLoad(page, params = {}) {
+ this.loading = true;
+ getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+ const data = res.data.data;
+ this.page.total = data.total;
+ this.data = data.records;
+ this.loading = false;
+ this.selectionClear();
+ console.log(res)
+ });
+ }
+ }
+};
+</script>
+
+<style>
+</style>
--
Gitblit v1.9.3