diff --git a/WebSite/package-lock.json b/WebSite/package-lock.json index e6ed59efa39c597e6bbc919582e4ad49e3d1b950..b8e2f8ecbdda529689f7d386987874d1e2ff7888 100644 --- a/WebSite/package-lock.json +++ b/WebSite/package-lock.json @@ -1857,6 +1857,16 @@ "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", @@ -1889,12 +1899,47 @@ "unique-filename": "^1.1.1" } }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, "html-webpack-plugin": { "version": "3.2.0", "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1613744691795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", @@ -1944,6 +1989,16 @@ "minipass": "^3.1.1" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "terser-webpack-plugin": { "version": "2.3.8", "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1603881839307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz", @@ -1970,6 +2025,53 @@ "define-properties": "^1.1.2", "object.getownpropertydescriptors": "^2.0.3" } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.3", + "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", + "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "optional": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "optional": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } } } }, @@ -5955,11 +6057,6 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, - "faker": { - "version": "5.5.3", - "resolved": "https://registry.npmmirror.com/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==" - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599651635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", @@ -13429,87 +13526,6 @@ } } }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.8.3", - "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", - "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "vue-particles": { "version": "1.0.9", "resolved": "https://registry.npm.taobao.org/vue-particles/download/vue-particles-1.0.9.tgz", diff --git a/WebSite/src/api/sourceApi.js b/WebSite/src/api/sourceApi.js new file mode 100644 index 0000000000000000000000000000000000000000..ecd6bb9c12fe7e8846f37aeb0dbd7ef242538f8b --- /dev/null +++ b/WebSite/src/api/sourceApi.js @@ -0,0 +1,30 @@ +/* + * @Description: + * @Autor: dongjunhua + * @Date: 2021-01-28 15:54:35 + * @LastEditors: dongjunhua + * @LastEditTime: 2021-01-28 16:00:16 + */ + +import request from '@/core/base/request'; + +class SourceApi { + //1.鏌ヨ鍑烘墍鏈夌殑鏁版嵁婧� + static dataSourceList() { + return request.post('/dataSource/pc/v1/dataSourceList'); + } + //2.鏍规嵁鏁版嵁婧愬悕绉拌幏鍙栭泦鍚� + static listByDataSourceName(data) { + return request.post('/datamodel/pc/v1/listByDataSourceName',data); + } + //3.鏍规嵁鏁版嵁婧愬悕绉版煡璇㈡暟鎹� + static getEntityByName(data) { + return request.post(`/dataSource/pc/v1/getEntityByName?name=${data}`); + } + //4.娴嬭瘯杩炴帴 + static testDataConfigurationIsOk(data) { + return request.post(`/dataSource/pc/v1/testDataConfigurationIsOk?name=${data}`); + } +} + +export default SourceApi; diff --git a/WebSite/src/main.js b/WebSite/src/main.js index ca0ddb317af1f9ce32c391daba6d93b849151d31..15e0a47ba651992581299013342a22fce5ba96c6 100644 --- a/WebSite/src/main.js +++ b/WebSite/src/main.js @@ -38,8 +38,14 @@ import VueParticles from 'vue-particles'; mockXHR(); } })(); +//娉ㄥ唽鎵€鏈夊浘鏍� +import * as ElementPlusIconsVue from '@element-plus/icons-vue' + const app = createApp(App); +for (const [key, component] of Object.entries(ElementPlusIconsVue)) { + app.component(key, component) +} // register plugins app diff --git a/WebSite/src/views/configure-data-sources/index.vue b/WebSite/src/views/configure-data-sources/index.vue index 37a695c1fd039ff734f737dedb0915a66a7f3675..8c30ae86635320d0fe0ee727e206e8f4c99550ca 100644 --- a/WebSite/src/views/configure-data-sources/index.vue +++ b/WebSite/src/views/configure-data-sources/index.vue @@ -1,108 +1,177 @@ <template> <div class="container"> - <div class="left"> - <el-card style="height: 100%"> - <el-table - :data="tableDateSource" - style="width: 100%" - :header-cell-style="{ - backgroundColor: '#E8EEF4', - height: '60px', - fontSize: '16px', - }" - :cell-style="{ height: '60px', fontSize: '16px' }" - stripe - border - max-height="840px" - > - <el-table-column label="鏁版嵁婧愬悕绉�" prop="name" align="center"> - </el-table-column> - </el-table> - </el-card> - </div> - <div class="right"> - <el-card style="height: 100%"> - <div class="top"> - <div class="title">褰撳墠閫変腑鏁版嵁婧愬悕绉帮細{{ formDate.sourceName }}</div> - <div class="topBtn"> - <el-button type="success">淇濆瓨</el-button> - <el-button type="primary">娴嬭瘯杩炴帴</el-button> - </div> + <el-row :gutter="20" style="height: 100%"> + <el-col :span="6"> + <div class="left"> + <el-card style="height: 100%"> + <el-table + :data="tableDateSource" + style="width: 100%" + :header-cell-style="{ + backgroundColor: '#E8EEF4', + height: '60px', + fontSize: '16px', + }" + :cell-style="{ height: '60px', fontSize: '16px' }" + stripe + border + max-height="840px" + @row-click="handleClick" + > + <el-table-column label="鏁版嵁婧愬悕绉�" prop="name" align="center"> + </el-table-column> + <el-table-column + align="center" + width="80" + :render-header="renderHeader" + > + <template #default="scope"> + <el-button + type="danger" + circle + @click="handleDeleteSource(scope.row)" + > + <el-icon><Delete /></el-icon> + </el-button> + </template> + </el-table-column> + </el-table> + </el-card> </div> - <el-form v-model="formDate" label-width="110px" label-position="left"> - <el-form-item label="鏁版嵁搴撻摼鎺ワ細" prop="url"> - <el-input v-model="formDate.url" placeholder="璇疯緭鍏ユ暟鎹簱閾炬帴" /> - </el-form-item> - <el-form-item label="鏁版嵁搴撳悕绉帮細" prop="name"> - <el-input v-model="formDate.name" placeholder="璇疯緭鍏ユ暟鎹簱鍚嶇О" /> - </el-form-item> - <el-form-item label="鏁版嵁搴撹处鍙凤細" prop="count"> - <el-input v-model="formDate.count" placeholder="璇疯緭鍏ユ暟鎹簱璐﹀彿" /> - </el-form-item> - <el-form-item label="鏁版嵁搴撳瘑鐮侊細" prop="password"> - <el-input - v-model="formDate.password" - placeholder="璇疯緭鍏ユ暟鎹簱瀵嗙爜" - /> - </el-form-item> - <el-form-item label="鏁版嵁鎶藉彇璇彞锛�" prop="statement"> - <el-input - v-model="formDate.statement" - placeholder="璇疯緭鍏ユ暟鎹娊鍙栬鍙�" - /> - </el-form-item> - </el-form> - <el-table - :data="tableDataDetail" - style="width: 100%; margin-top: 10px" - border - :header-cell-style="{ - backgroundColor: '#E8EEF4', - height: '50px', - fontSize: '15px', - }" - :cell-style="{ height: '40px', fontSize: '14px' }" - > - <el-table-column - label="瀛楁" - prop="a" - align="center" - ></el-table-column> - <el-table-column - label="瀛楁鍚嶇О" - prop="b" - align="center" - ></el-table-column> - <el-table-column - label="澶栭儴瀵瑰簲瀛楁" - prop="c" - align="center" - ></el-table-column> - <el-table-column label="鍙互涓虹┖鍊�" prop="d" align="center"> - <template #default="scope"> - <el-switch v-model="scope.row.d" /> - </template> - </el-table-column> - <el-table-column label="璁剧疆鍞竴鍊�" prop="e" align="center"> - <template #default="scope"> - <el-switch v-model="scope.row.e" /> - </template> - </el-table-column> - </el-table> - <div style="text-align: center"> - <Pagination - :total="total" - @pagination="handlePageChange" - :page="query.pageNo" - :limit="query.pageSize" - ></Pagination> + </el-col> + <el-col :span="18"> + <div class="right"> + <el-card style="height: 100%"> + <div class="top"> + <div class="title">褰撳墠閫変腑鏁版嵁婧愬悕绉帮細{{ formDate.name }}</div> + <div class="topBtn"> + <el-button type="primary">瀵煎叆</el-button> + <el-button type="primary">瀵煎嚭</el-button> + <el-button type="success">淇濆瓨</el-button> + <el-button type="primary" @click="testDataConfigurationIsOk()" + >娴嬭瘯杩炴帴</el-button + > + </div> + </div> + <el-form + v-model="formDate" + label-width="110px" + label-position="left" + > + <el-form-item label="鏁版嵁搴撻摼鎺ワ細" prop="sqlConnect"> + <el-input + v-model="formDate.sqlConnect" + placeholder="璇疯緭鍏ユ暟鎹簱閾炬帴" + /> + </el-form-item> + <el-form-item label="鏁版嵁搴撳悕绉帮細" prop="sqlDbName"> + <el-input + v-model="formDate.sqlDbName" + placeholder="璇疯緭鍏ユ暟鎹簱鍚嶇О" + /> + </el-form-item> + <el-form-item label="鏁版嵁搴撹处鍙凤細" prop="sqlAccountUserName"> + <el-input + v-model="formDate.sqlAccountUserName" + placeholder="璇疯緭鍏ユ暟鎹簱璐﹀彿" + /> + </el-form-item> + <el-form-item label="鏁版嵁搴撳瘑鐮侊細" prop="sqlAccountPwd"> + <el-input + v-model="formDate.sqlAccountPwd" + placeholder="璇疯緭鍏ユ暟鎹簱瀵嗙爜" + /> + </el-form-item> + <el-form-item label="鏁版嵁鎶藉彇璇彞锛�" prop="sqlStr"> + <el-input + v-model="formDate.sqlStr" + placeholder="璇疯緭鍏ユ暟鎹娊鍙栬鍙�" + /> + </el-form-item> + </el-form> + <el-table + :data="tableDataDetail" + style="width: 100%; margin-top: 10px" + border + :header-cell-style="{ + backgroundColor: '#E8EEF4', + height: '50px', + fontSize: '15px', + }" + :cell-style="{ height: '40px', fontSize: '14px' }" + max-height="570px" + > + <el-table-column label="瀛楁" prop="a" align="center"> + <template #default="scope"> + <div v-if="!scope.row.isChange">{{ scope.row.a }}</div> + <el-input + v-model="scope.row.a" + v-if="scope.row.isChange" + ></el-input> + </template> + </el-table-column> + <el-table-column label="瀛楁鍚嶇О" prop="b" align="center"> + <template #default="scope"> + <div v-if="!scope.row.isChange">{{ scope.row.b }}</div> + <el-input + v-model="scope.row.b" + v-if="scope.row.isChange" + ></el-input> + </template> + </el-table-column> + <el-table-column label="澶栭儴瀵瑰簲瀛楁" prop="c" align="center"> + <template #default="scope"> + <div v-if="!scope.row.isChange">{{ scope.row.c }}</div> + <el-input + v-model="scope.row.c" + v-if="scope.row.isChange" + ></el-input> + </template> + </el-table-column> + <el-table-column label="鍙互涓虹┖鍊�" prop="d" align="center"> + <template #default="scope"> + <el-switch v-model="scope.row.d" /> + </template> + </el-table-column> + <el-table-column label="璁剧疆鍏宠仈鍊�" prop="e" align="center"> + <template #default="scope"> + <el-switch v-model="scope.row.e" /> + </template> + </el-table-column> + <el-table-column + label="鎿嶄綔" + align="center" + :render-header="renderHeaderTable" + > + <template #default="scope"> + <el-button + v-if="!scope.row.isChange" + type="primary" + @click="handleEdit(scope.row)" + >缂栬緫</el-button + > + <el-button + v-if="scope.row.isChange" + type="primary" + @click="handleOver(scope.row)" + >瀹屾垚</el-button + > + <el-button type="danger" @click="handleDelete(scope.row)" + >鍒犻櫎</el-button + > + </template> + </el-table-column> + </el-table> + </el-card> </div> - </el-card> - </div> + </el-col> + </el-row> </div> </template> <script> import { toRefs, reactive, onMounted } from 'vue'; +import SourceApi from '@/api/sourceApi.js'; +import { ElMessage } from 'element-plus'; export default { setup() { const data = reactive({ @@ -157,12 +226,12 @@ export default { }, ], formDate: { - sourceName: '', - url: '', name: '', - count: '', - password: '', - statement: '', + sqlConnect: '', + sqlDbName: '', + sqlAccountUserName: '', + sqlAccountPwd: '', + sqlStr: '', }, tableDataDetail: [ { @@ -171,6 +240,7 @@ export default { c: 'DM-1', d: false, e: true, + isChange: false, }, { a: 'MC', @@ -178,6 +248,7 @@ export default { c: 'MC-1', d: true, e: true, + isChange: false, }, { a: 'CJRQ', @@ -185,6 +256,7 @@ export default { c: 'CJRQ-1', d: true, e: false, + isChange: false, }, { a: 'ZZRQ', @@ -192,6 +264,7 @@ export default { c: 'ZZRQ-1', d: false, e: false, + isChange: false, }, { a: 'LS', @@ -199,6 +272,7 @@ export default { c: 'LS-1', d: true, e: true, + isChange: false, }, { a: 'CC', @@ -206,6 +280,7 @@ export default { c: 'DM-1', d: false, e: true, + isChange: false, }, { a: 'BB', @@ -213,6 +288,7 @@ export default { c: 'BB-1', d: false, e: true, + isChange: false, }, { a: 'DM', @@ -220,6 +296,7 @@ export default { c: 'DM-1', d: false, e: true, + isChange: false, }, { a: 'MC', @@ -227,6 +304,7 @@ export default { c: 'MC-1', d: true, e: true, + isChange: false, }, { a: 'CJRQ', @@ -234,6 +312,7 @@ export default { c: 'CJRQ-1', d: true, e: false, + isChange: false, }, { a: 'ZZRQ', @@ -241,6 +320,95 @@ export default { c: 'ZZRQ-1', d: false, e: false, + isChange: false, + }, + { + a: 'DM', + b: '閮ㄩ棬缂栧彿', + c: 'DM-1', + d: false, + e: true, + isChange: false, + }, + { + a: 'MC', + b: '閮ㄩ棬鍚嶇О', + c: 'MC-1', + d: true, + e: true, + isChange: false, + }, + { + a: 'CJRQ', + b: '鍒涘缓鏃ユ湡', + c: 'CJRQ-1', + d: true, + e: false, + isChange: false, + }, + { + a: 'ZZRQ', + b: '缁堟鏃ユ湡', + c: 'ZZRQ-1', + d: false, + e: false, + isChange: false, + }, + { + a: 'LS', + b: '闅跺睘', + c: 'LS-1', + d: true, + e: true, + isChange: false, + }, + { + a: 'CC', + b: '灞傛', + c: 'DM-1', + d: false, + e: true, + isChange: false, + }, + { + a: 'BB', + b: '鎶ヨ〃', + c: 'BB-1', + d: false, + e: true, + isChange: false, + }, + { + a: 'DM', + b: '閮ㄩ棬缂栧彿', + c: 'DM-1', + d: false, + e: true, + isChange: false, + }, + { + a: 'MC', + b: '閮ㄩ棬鍚嶇О', + c: 'MC-1', + d: true, + e: true, + isChange: false, + }, + { + a: 'CJRQ', + b: '鍒涘缓鏃ユ湡', + c: 'CJRQ-1', + d: true, + e: false, + isChange: false, + }, + { + a: 'ZZRQ', + b: '缁堟鏃ユ湡', + c: 'ZZRQ-1', + d: false, + e: false, + isChange: false, }, ], total: 100, @@ -253,16 +421,104 @@ export default { getTableDate(); }); //鑾峰彇琛ㄦ牸鏁版嵁 - const getTableDate = () => {}; + const getTableDate = () => { + SourceApi.dataSourceList().then((res) => { + data.tableDateSource = res.data; + data.formDate = data.tableDateSource[0]; + listByDataSourceName(); + }); + }; + //鑾峰彇瀛楁 + const listByDataSourceName = () => { + SourceApi.listByDataSourceName({ + dataSourceName: data.formDate.name, + }).then((res) => { + data.tableDataDetail = res.data; + }); + }; + //鐐瑰嚮姣忎竴琛� + const handleClick = (row) => { + SourceApi.getEntityByName(row.name).then((res) => { + data.formDate = res.data[0]; + listByDataSourceName(); + }); + }; //鍒嗛〉 const handlePageChange = (v) => { data.query.pageNo = v.page; data.query.pageSize = v.limit; - getTableDate(); + listByDataSourceName(); + }; + //澧炲姞鏁版嵁婧� + const add = (v) => { + if (v == 1) { + data.tableDateSource.push({ + name: '', + }); + } else { + data.tableDataDetail.push({ + a: '', + b: '', + c: '', + d: false, + e: false, + isChange: true, + }); + } + }; + //鍒犻櫎鏁版嵁婧� + const handleDeleteSource = () => {}; + //鏂板鏁版嵁婧� + const renderHeader = () => { + return ( + <div> + <el-icon onClick={() => add(1)} style="font-size: 30px;"> + <CirclePlus /> + </el-icon> + </div> + ); + }; + //鏂板瀛楁 + const renderHeaderTable = () => { + return ( + <div> + <span>鎿嶄綔</span> + <el-icon onClick={() => add(2)} style="margin-left:8px"> + <CirclePlus /> + </el-icon> + </div> + ); + }; + const handleDelete = () => {}; + const handleEdit = (row) => { + row.isChange = true; + }; + const handleOver = (row) => { + row.isChange = false; + }; + //娴嬭瘯杩炴帴 + const testDataConfigurationIsOk = () => { + SourceApi.testDataConfigurationIsOk(data.formDate.name).then(() => { + ElMessage({ + message: '娴嬭瘯杩炴帴鎴愬姛', + type: 'success', + }); + }); }; return { ...toRefs(data), + getTableDate, + listByDataSourceName, + handleClick, + handleDeleteSource, + handleDelete, + handleEdit, + handleOver, handlePageChange, + renderHeader, + renderHeaderTable, + add, + testDataConfigurationIsOk, }; }, }; @@ -271,15 +527,11 @@ export default { .container { height: 100vh; padding: 20px; - display: flex; .left { height: 100%; - flex: 1; - margin-right: 20px; } .right { height: 100%; - flex: 3; .top { line-height: 28px; height: 28px; diff --git a/WebSite/src/views/create-database/index.vue b/WebSite/src/views/create-database/index.vue index b131d28fb2fe5f2fb306d8f6d4a27d6282436af1..3e80b33881cd3dea2874cf6de851633de5e4707a 100644 --- a/WebSite/src/views/create-database/index.vue +++ b/WebSite/src/views/create-database/index.vue @@ -95,10 +95,21 @@ </el-table-column> <el-table-column label="鎿嶄綔" align="center" width="350"> <template #default="scope"> - <el-button type="warning" @click="handleEdit(scope.row)"> + <el-button type="primary" @click="handleEdit(scope.row)"> 缂栬緫 </el-button> - <el-button type="success" @click="handleDo(scope.row)"> + <el-button + v-if="scope.row.state === '鍏抽棴'" + type="primary" + @click="handleDo(scope.row)" + > + 鏌ョ湅鏁版嵁 + </el-button> + <el-button + v-if="scope.row.state === '姝e父'" + type="primary" + @click="handleDo(scope.row)" + > 鍒朵綔琛� </el-button> <el-button type="danger" @click="handleDelete(scope.row)"> diff --git a/WebSite/vue.config.js b/WebSite/vue.config.js index 77af601ff720cc2e77228853122e5b432c707a9a..97fcb17882ad2ae5c6a073b07479650e260cc4ba 100644 --- a/WebSite/vue.config.js +++ b/WebSite/vue.config.js @@ -30,7 +30,8 @@ if (process.env.NODE_ENV === 'mock') { devServer.proxy = { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { - target: 'http://localhost:8001', + // target: 'http://localhost:8001', + target: 'http://192.168.2.22:8858/', changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: ''