diff --git a/base-manager-ui/admin/src/components/YUpload.vue b/base-manager-ui/admin/src/components/YUpload.vue index f3db99275c28b1fd5551a44c24676ca2262277c5..0ee6400ab145742bda26a045432d1a6cfcddae03 100644 --- a/base-manager-ui/admin/src/components/YUpload.vue +++ b/base-manager-ui/admin/src/components/YUpload.vue @@ -75,6 +75,7 @@ export default { type: [String, Array], default: "", }, + // 鏂囦欢闄愬埗 accept: { type: String, default: "", @@ -87,9 +88,12 @@ export default { }, default: 0, // 0涓轰笉闄愬埗 }, - // 涓婁紶鏂囦欢澶у皬闄愬埗mb + // 涓婁紶鏂囦欢澶у皬闄愬埗mb 0涓轰笉闄愬埗 MB: { type: Number, + validator: (value) => { + return value >= 0; + }, default: 10, }, action: { diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue index 6ea9c38b11ef183d7504fa176352d967a1976d01..86bd3d33d78144eb39e0397d0ed4cf0271ec0517 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppDetailsPage.vue @@ -45,66 +45,57 @@ <div class="version-manage flex1"> <div class="title">鐗堟湰绠$悊</div> <div class="table-content"> - <a-table - :loading="loading" + <y-table size="small" bordered :scroll="{ y: 350 }" :columns="columns" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: current, - total: total, - pageSize: size, - showSizeChanger: true, - showQuickJumper: true, - size: 'small', - pageSizeOptions: pageSizeOptions, - onChange: handleChange, - onShowSizeChange: showSizeChange, - }" - :data-source="tableData" - :rowKey="(record) => record.id" + :data="tableData" + :pageSize.sync="size" + :page.sync="page" + :total="total" + :loading="loading" + @changePagination="getVersions" > - <!-- 搴忓彿 --> - <span slot="num" slot-scope="text, record, index">{{ - (current - 1) * size + index + 1 + <span slot="index" slot-scope="{ index }">{{ + (page - 1) * size + index + 1 }}</span> + <!-- 鐗堟湰鍙� --> - <template slot="version" slot-scope="text"> - v{{ text.version }} + <template slot="version" slot-scope="{ record }"> + v{{ record.version }} </template> <!-- 搴旂敤鍖� --> - <template slot="fileName" slot-scope="text"> - <a v-if="text.fileName" class="primary">{{ text.fileName }}</a> + <template slot="fileName" slot-scope="{ record }"> + <a v-if="record.fileName" class="primary">{{ record.fileName }}</a> <span v-else>--</span> </template> <!-- 褰撳墠鏄惁浣跨敤 --> - <template slot="used" slot-scope="text"> - <a-tag v-if="text.used" color="blue"> 姝e湪浣跨敤 </a-tag> + <template slot="used" slot-scope="{ record }"> + <a-tag v-if="record.used" color="blue"> 姝e湪浣跨敤 </a-tag> <span v-else>鍚�</span> </template> <!-- 鎿嶄綔 --> - <template slot="action" slot-scope="text"> + <template slot="action" slot-scope="{ record }"> <a-space size="middle"> <span class="primary pointer" - :disabled="text.used ? true : false" - @click="handleUse(text.id)" + :disabled="record.used ? true : false" + @click="handleUse(record.id)" >浣跨敤</span > - <span class="primary pointer" @click="handlePreview(text.id)" + <span class="primary pointer" @click="handlePreview(record.id)" >棰勮</span > <span class="delete pointer" v-permission="[1]" - @click="handleDel(text.id)" + @click="handleDel(record.id)" >鍒犻櫎</span > </a-space> </template> - </a-table> + </y-table> </div> </div> <!-- 绔欑偣鏍戝脊绐� --> @@ -127,8 +118,8 @@ import { deleteVersion, } from "@/services/market"; import CheckSite from "../modal/CheckSite.vue"; -import { pageSizeOptions } from "@/config/pageConfig.js"; import { mapGetters } from "vuex"; +import YTable from "@/components/YTable.vue"; export default { props: { // 搴旂敤淇℃伅 @@ -142,15 +133,15 @@ export default { }, components: { CheckSite, + YTable, }, data() { const columns = [ { title: "搴忓彿", - dataIndex: "num", width: "65px", scopedSlots: { - customRender: "num", + customRender: "index", }, }, { @@ -181,11 +172,10 @@ export default { columns, appId: this.$route.query.id, appInfo: {}, // 搴旂敤淇℃伅 - current: 1, + page: 1, size: 10, total: 0, loading: false, - pageSizeOptions, form: {}, tableData: [], siteVisible: false, @@ -224,7 +214,7 @@ export default { async getVersions() { this.loading = true; let res = await getVersionList({ - page: this.current, + page: this.page, size: this.size, appId: this.appId, }); @@ -304,17 +294,6 @@ export default { }); }, - // 缈婚〉 - handleChange(cur) { - this.current = cur; - this.getVersions(); - }, - // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺 - showSizeChange(cur, size) { - this.current = cur; - this.size = size; - this.getVersions(); - }, // 鏌ョ湅璇曠敤鑼冨洿璇︽儏 checkSite(siteList) { this.$refs.CheckSite.getSiteList(siteList); diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppTheme.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppTheme.vue index 5ad730ab018162825a6c0b9401ee7ce7a0852cd3..b28c970893255865bc9da4d6e6a72c2fa60245a9 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppTheme.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/AppTheme.vue @@ -16,57 +16,51 @@ </div> <!-- 琛ㄦ牸 --> <div class="table-content"> - <a-table + <y-table + :columns="columns" + :data="tableData" + :pageSize.sync="size" + :page.sync="page" + :total="total" + :loading="loading" + :scroll="{ y: 580 }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, }" - :loading="loading" - bordered - :scroll="{ y: 580 }" - :columns="columns" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: current, - total: total, - pageSize: size, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: pageSizeOptions, - onChange: handleChange, - onShowSizeChange: showSizeChange, - }" - :data-source="tableData" - :rowKey="(record) => record.id" + @changePagination="getCategoryList" > - <!-- 搴忓彿 --> - <span slot="num" slot-scope="text, record, index">{{ - (current - 1) * size + index + 1 + <span slot="index" slot-scope="{ index }">{{ + (page - 1) * size + index + 1 }}</span> <!-- 涓婚灏侀潰 --> - <template slot="cover" slot-scope="text"> + <template slot="cover" slot-scope="{ record }"> <img class="cover" - v-if="text.cover" - :src="text.cover" - @click="handlePreview(text.cover)" + v-if="record.cover" + :src="record.cover" + @click="handlePreview(record.cover)" /> <span v-else>--</span> </template> <!-- 鍒涘缓鏃堕棿 --> - <template slot="createTime" slot-scope="text"> - {{ text.createTime | dateFormat }} + <template slot="createTime" slot-scope="{ record }"> + {{ record.createTime | dateFormat }} </template> <!-- 鎿嶄綔 --> - <template slot="action" slot-scope="text"> + <template slot="action" slot-scope="{ record }"> <a-space size="middle"> - <span class="primary pointer" @click="handleEdit(text)">缂栬緫</span> - <span class="delete pointer" @click="handleDel(text.id)">鍒犻櫎</span> + <span class="primary pointer" @click="handleEdit(record)" + >缂栬緫</span + > + <span class="delete pointer" @click="handleDel(record.id)" + >鍒犻櫎</span + > </a-space> </template> - </a-table> + </y-table> </div> <!-- 鏂板銆佺紪杈戝垎绫� --> <AddTheme @@ -82,14 +76,13 @@ import { getCategoryList, deleteCategory } from "@/services/market"; import AddTheme from "../modal/AddTheme"; import local from "@/utils/local"; -import { pageSizeOptions } from "@/config/pageConfig.js"; +import YTable from "@/components/YTable.vue"; const columns = [ { title: "搴忓彿", - dataIndex: "num", width: "65px", scopedSlots: { - customRender: "num", + customRender: "index", }, }, { @@ -129,6 +122,7 @@ const columns = [ export default { components: { AddTheme, + YTable, }, data() { return { @@ -137,10 +131,9 @@ export default { tableData: [], // 琛ㄦ牸鏁版嵁 loading: false, searchVal: "", // 鎼滅储 - current: 1, + page: 1, size: 10, total: 0, - pageSizeOptions, selectedRowKeys: [], // 琛ㄦ牸鍕鹃€夋暟鎹� AddVisible: false, title: "鏂板涓婚", @@ -156,7 +149,7 @@ export default { async getCategoryList() { this.loading = true; let res = await getCategoryList({ - page: this.current, + page: this.page, size: this.size, siteId: this.siteId, categoryName: `%${this.searchVal}%`, @@ -164,8 +157,8 @@ export default { this.loading = false; let { data, total } = res.data.data; if (res.data.code === 1) { - if (!data.length && this.current > 1) { - this.current -= 1; + if (!data.length && this.page > 1) { + this.page -= 1; this.getCategoryList(); } this.tableData = data; @@ -181,21 +174,10 @@ export default { }, // 鎼滅储 onSearch() { - this.current = 1; + this.page = 1; this.selectedRowKeys = []; this.getCategoryList(); }, - // 缈婚〉 - handleChange(cur) { - this.current = cur; - this.getCategoryList(); - }, - // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺 - showSizeChange(current, size) { - this.current = current; - this.size = size; - this.getCategoryList(); - }, // 鍕鹃€夎〃鏍� onSelectChange(keys) { this.selectedRowKeys = keys; diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/BlackApp.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/BlackApp.vue index e346ed6c980517da01db6b1a51fb34a61b53a44d..40bbf00ebf41aeb3993db2d5ac0409c17cd90110 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/BlackApp.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/BlackApp.vue @@ -7,26 +7,10 @@ <a-button type="danger" @click="handleDelAll"> 鎵归噺绉婚櫎 </a-button> <div class="business-control"> <a-space> - <!-- <a-select - style="min-width: 120px" - v-model="leftHallSearch" - showSearch - optionFilterProp="label" - > - <a-select-option value="" label="鍏ㄩ儴搴旂敤"> </a-select-option> - <a-select-option - v-for="v in appList" - :key="v.id" - :value="v.id" - :label="v.name" - > - {{ v.name }} - </a-select-option> - </a-select> --> <a-input-search placeholder="璇疯緭鍏ュ簲鐢ㄥ悕绉版悳绱�" enter-button="鎼滅储" - v-model="leftSearch.name" + v-model="blackAppTable.searchForm.name" @search="onSearchLeft" allowClear /> @@ -35,45 +19,30 @@ </div> </div> <div class="table-content"> - <!-- 琛ㄦ牸 --> - <a-table - bordered - :loading="leftLoading" + <y-table size="middle" + :columns="blackAppTable.columns" + :data="blackAppTable.data" + :pageSize.sync="blackAppTable.size" + :page.sync="blackAppTable.page" + :total="blackAppTable.total" + :loading="blackAppTable.loading" :scroll="{ y: 550 }" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: leftCurrent, - total: leftTotal, - pageSize: leftSize, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: pageSizeOptions, - onChange: changeLeft, - onShowSizeChange: showSizeChange, - }" - :columns="leftColumns" - :data-source="blackApp" :row-selection="{ selectedRowKeys: selectedLeftRowKeys, onChange: onSelectChange, }" - :rowKey="(record) => record.id" + @changePagination="getBlackAppList" > - <template slot="num" slot-scope="text, record, index"> - <span> - {{ (leftCurrent - 1) * leftSize + index + 1 }} - </span> - </template> - <template slot="action" slot-scope="text"> - <span - href="javascript:;" - class="delete pointer" - @click="handleDel(text.id)" + <span slot="index" slot-scope="{ index }">{{ + (blackAppTable.page - 1) * blackAppTable.size + index + 1 + }}</span> + <template slot="action" slot-scope="{ record }"> + <span class="delete pointer" @click="handleDel(record.id)" >绉婚櫎</span > </template> - </a-table> + </y-table> </div> </div> <!-- 鍙� --> @@ -88,7 +57,7 @@ <a-space> <a-select style="min-width: 120px" - v-model="rightSearch.type" + v-model="siteDevTable.searchForm.type" showSearch optionFilterProp="label" > @@ -107,7 +76,7 @@ <a-input-search placeholder="璇疯緭鍏ヨ澶囩紪鐮佹悳绱�" enter-button="鎼滅储" - v-model="rightSearch.deviceCode" + v-model="siteDevTable.searchForm.deviceCode" @search="onSearch" allowClear /> @@ -117,47 +86,39 @@ </div> <div class="table-content"> <!-- 琛ㄦ牸 --> - <a-table - bordered - :scroll="{ y: 550 }" - :loading="rightLoading" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: rightCurrent, - total: rightTotal, - pageSize: rightSize, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: pageSizeOptions, - onChange: changeRight, - onShowSizeChange: showSizeChangeRight, - }" + + <y-table size="middle" - :columns="rightColumns" - :data-source="deviceList" - :rowKey="(record) => record.id" + :columns="siteDevTable.columns" + :data="siteDevTable.data" + :pageSize.sync="siteDevTable.size" + :page.sync="siteDevTable.page" + :total="siteDevTable.total" + :loading="siteDevTable.loading" + :scroll="{ y: 550 }" + @changePagination="getDeviceList" > - <template slot="num" slot-scope="text, record, index"> - <span> - {{ (rightCurrent - 1) * rightSize + index + 1 }} - </span> - </template> - <template slot="deviceStatus" slot-scope="text"> - <a-tag color="blue" v-if="text.deviceStatus == 0"> 鏈縺娲� </a-tag> - <a-tag color="red" v-else-if="text.deviceStatus == 1"> 绂荤嚎 </a-tag> - <a-tag color="green" v-else-if="text.deviceStatus == 2"> + <span slot="index" slot-scope="{ index }">{{ + (siteDevTable.page - 1) * siteDevTable.size + index + 1 + }}</span> + <template slot="deviceStatus" slot-scope="{ record }"> + <a-tag color="blue" v-if="record.deviceStatus == 0"> 鏈縺娲� </a-tag> + <a-tag color="red" v-else-if="record.deviceStatus == 1"> + 绂荤嚎 + </a-tag> + <a-tag color="green" v-else-if="record.deviceStatus == 2"> 鍦ㄧ嚎 </a-tag> </template> - <template slot="action" slot-scope="text"> + <template slot="action" slot-scope="{ record }"> <a-space size="middle"> - <span class="primary pointer" @click="handleIn(text)" + <span class="primary pointer" @click="handleIn(record)" >鍔犲叆榛戝悕鍗�</span > </a-space> </template> - </a-table> + </y-table> </div> </div> <!-- 娣诲姞榛戝悕鍗� --> @@ -177,7 +138,7 @@ import { } from "@/services/market"; import local from "@/utils/local"; import DevToBlack from "../modal/DevToBlack.vue"; -import { pageSizeOptions } from "@/config/pageConfig.js"; +import YTable from "@/components/YTable.vue"; const devType = [ "鎺掗槦鏈�", "绐楀彛灞�", @@ -197,98 +158,95 @@ const devType = [ ]; export default { - components: { DevToBlack }, + components: { DevToBlack, YTable }, data() { - const leftColumns = [ - { - title: "搴忓彿", - width: "50px", - scopedSlots: { customRender: "num" }, - }, - { - title: "搴旂敤鍚嶇О", - dataIndex: "appName", - }, - { - title: "璁惧鍚嶇О", - customRender: (text) => { - return text.deviceName || "--"; - }, - }, - { - title: "璁惧缂栫爜", - dataIndex: "deviceCode", - }, - { - title: "鎿嶄綔", - width: "110px", - scopedSlots: { - customRender: "action", + return { + devType, + blackAppTable: { + page: 1, + size: 10, + total: 0, + loading: false, + data: [], + searchForm: { + name: "", }, + columns: [ + { + title: "搴忓彿", + width: "50px", + scopedSlots: { customRender: "index" }, + }, + { + title: "搴旂敤鍚嶇О", + dataIndex: "appName", + }, + { + title: "璁惧鍚嶇О", + dataIndex: "deviceName", + }, + { + title: "璁惧缂栫爜", + dataIndex: "deviceCode", + }, + { + title: "鎿嶄綔", + width: "110px", + scopedSlots: { + customRender: "action", + }, + }, + ], }, - ]; - const rightColumns = [ - { - title: "搴忓彿", - key: "id", - width: "50px", - scopedSlots: { customRender: "num" }, - }, - { - title: "璁惧鍚嶇О", - customRender: (text) => { - return text.deviceName || "--"; + siteDevTable: { + page: 1, + size: 10, + total: 0, + loading: false, + data: [], + searchForm: { + deviceCode: "", + type: "", }, - }, - { - title: "璁惧缂栫爜", - dataIndex: "deviceCode", - }, - { - title: "璁惧绫诲瀷", - dataIndex: "productName", - }, - { - title: "璁惧鐘舵€�", - width: "10%", - scopedSlots: { customRender: "deviceStatus" }, - }, + columns: [ + { + title: "搴忓彿", + key: "id", + width: "50px", + scopedSlots: { customRender: "index" }, + }, + { + title: "璁惧鍚嶇О", + dataIndex: "deviceName", + }, + { + title: "璁惧缂栫爜", + dataIndex: "deviceCode", + }, + { + title: "璁惧绫诲瀷", + dataIndex: "productName", + }, + { + title: "璁惧鐘舵€�", + width: "10%", + scopedSlots: { customRender: "deviceStatus" }, + }, - { - title: "鎿嶄綔", - width: "110px", - scopedSlots: { - customRender: "action", - }, - }, - ]; - return { - devType, - leftColumns, - rightColumns, - leftLoading: false, - rightLoading: false, - leftSearch: { - name: "", - }, - rightSearch: { - deviceCode: "", - type: "", + { + title: "鎿嶄綔", + width: "110px", + scopedSlots: { + customRender: "action", + }, + }, + ], }, selectedLeftRowKeys: [], selectedRowKeys: [], selectedRows: [], visible: false, - leftCurrent: 1, - rightCurrent: 1, - leftTotal: 0, - rightTotal: 0, - leftSize: 10, - rightSize: 10, - pageSizeOptions, siteId: local.getLocal("siteId"), // 绔欑偣id - deviceList: [], // 绔欑偣璁惧鍒楄〃 - blackApp: [], // 搴旂敤榛戝悕鍗曞垪琛� }; }, created() { @@ -298,44 +256,44 @@ export default { methods: { // 鑾峰彇璁惧榛戝悕鍗� async getBlackAppList() { - this.leftLoading = true; + this.blackAppTable.loading = true; let res = await getBlackAppList({ - page: this.leftCurrent, - size: this.leftSize, - appName: `%${this.leftSearch.name}%`, + page: this.blackAppTable.page, + size: this.blackAppTable.size, + appName: `%${this.blackAppTable.searchForm.name}%`, siteId: this.siteId, }); if (res.data.code == 1) { let { data, total } = res.data.data; - if (!data.length && this.leftCurrent > 1) { - this.leftCurrent -= 1; + if (!data.length && this.blackAppTable.page > 1) { + this.blackAppTable.page -= 1; this.getBlackAppList(); } - this.blackApp = data; - this.leftTotal = total; + this.blackAppTable.data = data; + this.blackAppTable.total = total; } - this.leftLoading = false; + this.blackAppTable.loading = false; }, // 鑾峰彇绔欑偣璁惧鍒楄〃 async getDeviceList() { - this.rightLoading = true; + this.siteDevTable.loading = true; let res = await getDeviceList({ - page: this.rightCurrent, - size: this.rightSize, + page: this.siteDevTable.page, + size: this.siteDevTable.size, siteId: this.siteId, - deviceCode: `%${this.rightSearch.deviceCode}%`, - productName: `%${this.rightSearch.type}%`, + deviceCode: `%${this.siteDevTable.searchForm.deviceCode}%`, + productName: `%${this.siteDevTable.searchForm.type}%`, }); if (res.data.code == 1) { let { data, total } = res.data.data; - this.deviceList = data; - this.rightTotal = total; + this.siteDevTable.data = data; + this.siteDevTable.total = total; } - this.rightLoading = false; + this.siteDevTable.loading = false; }, // 宸﹁竟鎼滅储 onSearchLeft() { - this.leftCurrent = 1; + this.blackAppTable.page = 1; this.selectedLeftRowKeys = []; this.getBlackAppList(); }, @@ -400,31 +358,9 @@ export default { // this.handleIn(this.selectedRows); // }, - // 宸︾炕椤� - changeLeft(cur) { - this.leftCurrent = cur; - this.getBlackAppList(); - }, - // 宸﹁竟鏀瑰彉姣忛〉鏄剧ず鏁伴噺 - showSizeChange(current, size) { - this.leftCurrent = current; - this.leftSize = size; - this.getBlackAppList(); - }, - // 鍙崇炕椤� - changeRight(cur) { - this.rightCurrent = cur; - this.getDeviceList(); - }, - // 鍙宠竟鏀瑰彉鏄剧ず鏁伴噺 - showSizeChangeRight(current, size) { - this.rightCurrent = current; - this.rightSize = size; - this.getDeviceList(); - }, // 鎼滅储 async onSearch() { - this.rightCurrent = 1; + this.siteDevTable.page = 1; this.getDeviceList(); }, // 鍔犲叆 diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue index e18ec140742328475a82d4f785044b938430759a..cef5a0442792ebb2f128dbeb139032820a3e865f 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/DataUpdate.vue @@ -39,40 +39,30 @@ </div> <!-- 琛ㄦ牸 --> <div class="table-content"> - <a-table - :loading="loading" - bordered + <y-table :columns="columns" + :data="tableData" + :pageSize.sync="size" + :page.sync="page" + :total="total" + :loading="loading" :scroll="{ y: 550 }" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: current, - total: total, - pageSize: size, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: pageSizeOptions, - onChange: handleChange, - onShowSizeChange: showSizeChange, - }" - :data-source="tableData" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, }" - :rowKey="(record) => record.id" + @changePagination="getDatasetList" > - <!-- 搴忓彿 --> - <span slot="num" slot-scope="text, record, index">{{ - (current - 1) * size + index + 1 + <span slot="index" slot-scope="{ index }">{{ + (page - 1) * size + index + 1 }}</span> <!-- 鍥剧墖 --> - <template slot="img" slot-scope="text"> - <a-space v-if="text.img"> + <template slot="img" slot-scope="{ record }"> + <a-space v-if="record.img"> <img class="pre-item" - v-for="(v, i) in filterRes(text.img)" + v-for="(v, i) in filterRes(record.img)" :key="i" :src="v" @click="handlePreview('img', v)" @@ -81,10 +71,10 @@ <span v-else>--</span> </template> <!-- 瑙嗛 --> - <template slot="video" slot-scope="text"> - <a-space v-if="text.video"> + <template slot="video" slot-scope="{ record }"> + <a-space v-if="record.video"> <video - v-for="(v, i) in filterRes(text.video)" + v-for="(v, i) in filterRes(record.video)" :key="i" width="50" :src="v" @@ -94,18 +84,22 @@ <span v-else>--</span> </template> <!-- 鎿嶄綔 --> - <template slot="action" slot-scope="text"> + <template slot="action" slot-scope="{ record }"> <a-space size="middle"> - <span class="primary pointer" @click="handleEdit(text)">缂栬緫</span> - <span class="delete pointer" @click="handleDel(text.id)">鍒犻櫎</span> + <span class="primary pointer" @click="handleEdit(record)" + >缂栬緫</span + > + <span class="delete pointer" @click="handleDel(record.id)" + >鍒犻櫎</span + > </a-space> </template> - </a-table> + </y-table> </div> <!-- 鏂板鏁版嵁 --> <AddData ref="AddData" - @addSuccess="getDatasetList" + @success="getDatasetList" :AddVisible.sync="AddVisible" :title="title" ></AddData> @@ -119,13 +113,13 @@ <script> import AddData from "../modal/AddData.vue"; -import { pageSizeOptions } from "@/config/pageConfig.js"; import { getDatasetList, deleteDataset, getTempleteList, } from "@/services/market"; import PrevieModal from "@/components/PrevieModal.vue"; +import YTable from "@/components/YTable.vue"; export default { // props: { // // 搴旂敤淇℃伅 @@ -140,6 +134,7 @@ export default { components: { AddData, PrevieModal, + YTable, }, data() { return { @@ -147,10 +142,9 @@ export default { api2: process.env.VUE_APP_API_IMG_URL, appId: this.$route.query.id, loading: false, - current: 1, + page: 1, size: 10, total: 0, - pageSizeOptions, searchVal: "", tableData: [], AddVisible: false, @@ -172,7 +166,7 @@ export default { title: "搴忓彿", width: "65px", scopedSlots: { - customRender: "num", + customRender: "index", }, }; let action = { @@ -203,7 +197,7 @@ export default { let row = record.appInfoFieldList.find( (item) => item.fieldCode == v.fieldCode ); - if (row && row.fieldTypeValue && !row.serviceApiParams) { + if (row && row.fieldTypeValue && !row.serviceApi) { let fieldTypeValue = JSON.parse(row.fieldTypeValue); return fieldTypeValue[text]; } else { @@ -258,7 +252,7 @@ export default { let obj = {}; let orConditionList = []; let form = { - page: this.current, + page: this.page, size: this.size, appId: this.appId, }; @@ -275,8 +269,8 @@ export default { this.loading = false; if (res.data.code === 1) { let { data, total } = res.data.data; - if (!data.length && this.current > 1) { - this.current -= 1; + if (!data.length && this.page > 1) { + this.page -= 1; this.getDatasetList(); } data.forEach((v) => { @@ -301,21 +295,10 @@ export default { }, // 鎼滅储 onSearch() { - this.current = 1; + this.page = 1; this.selectedRowKeys = []; this.getDatasetList(); }, - // 缈婚〉 - handleChange(cur) { - this.current = cur; - this.getDatasetList(); - }, - // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺 - showSizeChange(current, size) { - this.current = current; - this.size = size; - this.getDatasetList(); - }, // 缂栬緫 handleEdit(row) { this.title = "缂栬緫"; diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/FieldConfig.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/FieldConfig.vue index 244b3b945a2733f138e30c93bdde3906c8e84ac3..6309e150c40d2dfa36e7de603bf42d1329098e8d 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/FieldConfig.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/FieldConfig.vue @@ -17,44 +17,41 @@ </div> <!-- 琛ㄦ牸 --> <div class="table-content"> - <a-table + <y-table + :columns="columns" + :data="tableData" + :pageSize.sync="size" + :page.sync="page" + :total="total" :loading="loading" - bordered :scroll="{ y: 550 }" - :columns="columns" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: current, - total: total, - pageSize: size, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: pageSizeOptions, - onChange: handleChange, - onShowSizeChange: showSizeChange, - }" - :data-source="tableData" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, }" - :rowKey="(record) => record.id" + @changePagination="getAppList" > - <!-- 搴忓彿 --> - <span slot="num" slot-scope="text, record, index">{{ index + 1 }}</span> + <span slot="index" slot-scope="{ index }">{{ + (page - 1) * size + index + 1 + }}</span> + <!-- 鍏佽涓虹┖ --> - <template slot="fieldNull" slot-scope="text"> - <a-tag v-if="text.fieldNull === 1" color="green"> 鏄� </a-tag> + <template slot="fieldNull" slot-scope="{ record }"> + <a-tag v-if="record.fieldNull === 1" color="green"> 鏄� </a-tag> <a-tag v-else color="red"> 鍚� </a-tag> </template> <!-- 鎿嶄綔 --> - <template slot="action" slot-scope="text"> + <template slot="action" slot-scope="{ record }"> <a-space size="middle"> - <span class="primary pointer" @click="handleEdit(text)">缂栬緫</span> - <span class="delete pointer" @click="handleDel(text.id)">鍒犻櫎</span> + <span class="primary pointer" @click="handleEdit(record)" + >缂栬緫</span + > + <span class="delete pointer" @click="handleDel(record.id)" + >鍒犻櫎</span + > </a-space> </template> - </a-table> + </y-table> </div> <!-- 鏂板鏁版嵁 --> <AddField @@ -69,7 +66,7 @@ <script> import AddField from "../modal/AddField.vue"; import { getTempleteList, deleteTemplete } from "@/services/market"; -import { pageSizeOptions } from "@/config/pageConfig.js"; +import YTable from "@/components/YTable.vue"; export default { // props: { // // 搴旂敤淇℃伅 @@ -83,6 +80,7 @@ export default { // }, components: { AddField, + YTable, }, data() { const columns = [ @@ -90,7 +88,7 @@ export default { title: "搴忓彿", width: "65px", scopedSlots: { - customRender: "num", + customRender: "index", }, }, { @@ -108,9 +106,7 @@ export default { }, { title: "鏁版嵁绫诲瀷", - customRender: (text) => { - return <span>{text.dataType ? text.dataType : "--"}</span>; - }, + dataIndex: "dataType", }, { title: "鏁版嵁闀垮害", @@ -142,10 +138,9 @@ export default { appId: this.$route.query.id, columns, loading: false, - current: 1, + page: 1, size: 10, total: 0, - pageSizeOptions, searchVal: "", tableData: [], fieldVisible: false, @@ -161,7 +156,7 @@ export default { async getTempleteList() { this.loading = true; let res = await getTempleteList({ - page: this.current, + page: this.page, size: this.size, appId: this.appId, fieldName: this.searchVal, @@ -169,8 +164,8 @@ export default { this.loading = false; if (res.data.code === 1) { let { data, total } = res.data.data; - if (!data.length && this.current > 1) { - this.current -= 1; + if (!data.length && this.page > 1) { + this.page -= 1; this.getTempleteList(); } this.tableData = data.sort((a, b) => { @@ -187,21 +182,11 @@ export default { }, // 鎼滅储 onSearch() { - this.current = 1; + this.page = 1; this.selectedRowKeys = []; this.getTempleteList(); }, - // 缈婚〉 - handleChange(cur) { - this.current = cur; - this.getTempleteList(); - }, - // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺 - showSizeChange(current, size) { - this.current = current; - this.size = size; - this.getTempleteList(); - }, + // 缂栬緫 handleEdit(row) { this.title = "缂栬緫"; diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/MoveApp.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/MoveApp.vue index 7f02834da6ee0bbfd49d6427b14f3c916d4f37dc..ca7edb651c833f793fc906c8c1f92351508e8d03 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/MoveApp.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/MoveApp.vue @@ -22,91 +22,86 @@ </div> <!-- 琛ㄦ牸 --> <div class="table-content"> - <a-table + <y-table + :columns="columns" + :data="tableData" + :pageSize.sync="size" + :page.sync="page" + :total="total" + :loading="loading" + :scroll="{ y: 560 }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, }" - :loading="loading" - bordered - :scroll="{ y: 560 }" - :columns="columns" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: current, - total: total, - pageSize: size, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: pageSizeOptions, - onChange: handleChange, - onShowSizeChange: showSizeChange, - }" - :data-source="tableData" - :rowKey="(record) => record.id" + @changePagination="getAppList" > - <!-- 搴忓彿 --> - <span slot="num" slot-scope="text, record, index">{{ - (current - 1) * size + index + 1 + <span slot="index" slot-scope="{ index }">{{ + (page - 1) * size + index + 1 }}</span> + <!-- 鍥炬爣 --> - <template slot="appIconPath" slot-scope="text"> + <template slot="appIconPath" slot-scope="{ record }"> <img - v-if="text.appIconPath" + v-if="record.appIconPath" class="pointer" height="20" width="20" - :src="text.appIconPath" - @click="handlePreview(text.appIconPath)" + :src="record.appIconPath" + @click="handlePreview(record.appIconPath)" /> <span v-else>--</span> </template> <!-- 涓婚绫诲瀷 --> - <template slot="appThemeName" slot-scope="text"> - {{ filterItems(text.appThemeName) }} + <template slot="appThemeName" slot-scope="{ record }"> + {{ filterItems(record.appThemeName) }} </template> <!-- 绠€浠� --> - <template slot="summary" slot-scope="text"> - <span :title="text.summary">{{ - text.summary ? text.summary : "--" + <template slot="summary" slot-scope="{ record }"> + <span :title="record.summary">{{ + record.summary ? record.summary : "--" }}</span> </template> <!-- 鐗堟湰 --> - <template slot="version" slot-scope="text"> - {{ text.version || text.version == 0 ? "v" + text.version : "--" }} + <template slot="version" slot-scope="{ record }"> + {{ + record.version || record.version == 0 ? "v" + record.version : "--" + }} </template> <!-- 绫诲瀷 --> - <template slot="appType" slot-scope="text"> - {{ text.appType === 1 ? "搴旂敤绋嬪簭" : "URL" }} + <template slot="appType" slot-scope="{ record }"> + {{ record.appType === 1 ? "搴旂敤绋嬪簭" : "URL" }} </template> <!-- 涓婁笅鏋� --> - <template slot="shelves" slot-scope="text"> + <template slot="shelves" slot-scope="{ record }"> <YSwitch checkedChildren="涓婃灦" unCheckedChildren="涓嬫灦" - v-model="text.shelves" - @change="changeShelves(text)" + v-model="record.shelves" + @change="changeShelves(record)" ></YSwitch> </template> <!-- 鎿嶄綔 --> - <template slot="action" slot-scope="text"> + <template slot="action" slot-scope="{ record }"> <a-space size="middle"> - <span class="primary pointer" @click="handleCloneAppData(text)" + <span class="primary pointer" @click="handleCloneAppData(record)" >鍏嬮殕鏁版嵁</span > - <span class="primary pointer" @click="handleEdit(text)">缂栬緫</span> - <span class="primary pointer" @click="handleCheck(text.id)" + <span class="primary pointer" @click="handleEdit(record)" + >缂栬緫</span + > + <span class="primary pointer" @click="handleCheck(record.id)" >鏌ョ湅</span > <span class="delete pointer" - :class="{ unDelete: userInfo.id != 1 && text.distribute }" - @click="handleDel(text.distribute, text.id)" + :class="{ unDelete: userInfo.id != 1 && record.distribute }" + @click="handleDel(record.distribute, record.id)" >鍒犻櫎</span > </a-space> </template> - </a-table> + </y-table> </div> <!-- 鏂板搴旂敤 --> <AddApp @@ -141,6 +136,7 @@ import AddApp from "../modal/AddApp.vue"; import CheckSite from "../modal/CheckSite.vue"; import ChangeThem from "../modal/ChangeThem.vue"; import CloneData from "../modal/CloneData.vue"; +import YTable from "@/components/YTable.vue"; import { getAppList, deleteApp, @@ -149,14 +145,12 @@ import { } from "@/services/market"; import local from "@/utils/local"; import { mapMutations, mapGetters } from "vuex"; -import { pageSizeOptions } from "@/config/pageConfig.js"; const columns = [ { title: "搴忓彿", - dataIndex: "num", width: "65px", scopedSlots: { - customRender: "num", + customRender: "index", }, }, { @@ -206,6 +200,7 @@ export default { CheckSite, ChangeThem, CloneData, + YTable, }, data() { return { @@ -215,10 +210,9 @@ export default { tableData: [], // 琛ㄦ牸鏁版嵁 loading: false, searchVal: "", // 鎼滅储 - current: 1, + page: 1, size: 10, total: 0, - pageSizeOptions, selectedRowKeys: [], // 琛ㄦ牸鍕鹃€塱d鍒楄〃 selectedAppList: [], // 琛ㄦ牸鍕鹃€変俊鎭垪琛� AddVisible: false, @@ -258,7 +252,7 @@ export default { async getAppList() { this.loading = true; let res = await getAppList({ - page: this.current, + page: this.page, size: this.size, siteId: this.siteId, appName: `%${this.searchVal}%`, @@ -269,8 +263,8 @@ export default { this.dict = dict; this.SET_appDict(dict); if (res.data.code === 1) { - if (!data.length && this.current > 1) { - this.current -= 1; + if (!data.length && this.page > 1) { + this.page -= 1; this.getAppList(); } this.tableData = data; @@ -293,20 +287,12 @@ export default { }, // 鎼滅储 onSearch() { - this.current = 1; - this.getAppList(); - }, - // 缈婚〉 - handleChange(cur) { - this.current = cur; - this.getAppList(); - }, - // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺 - showSizeChange(current, size) { - this.current = current; - this.size = size; + this.page = 1; + this.selectedRowKeys = []; + this.selectedAppList = []; this.getAppList(); }, + // 鍕鹃€夎〃鏍� onSelectChange(keys, rows) { this.selectedRowKeys = keys; @@ -381,6 +367,8 @@ export default { let { code, msg } = res.data; if (code === 1) { _this.$message.success(msg); + _this.selectedRowKeys = []; + _this.selectedAppList = []; _this.getAppList(); } }, diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue index 4fc529d11f1e2d272ebeea4990c443b3b775db47..286b3b9d591ebafe360f7899fd407f8f71402500 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/components/TerminalApp.vue @@ -22,91 +22,86 @@ </div> <!-- 琛ㄦ牸 --> <div class="table-content"> - <a-table + <y-table + :columns="columns" + :data="tableData" + :pageSize.sync="size" + :page.sync="page" + :total="total" + :loading="loading" + :scroll="{ y: 560 }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, }" - :loading="loading" - bordered - :scroll="{ y: 560 }" - :columns="columns" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: current, - total: total, - pageSize: size, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: pageSizeOptions, - onChange: handleChange, - onShowSizeChange: showSizeChange, - }" - :data-source="tableData" - :rowKey="(record) => record.id" + @changePagination="getAppList" > - <!-- 搴忓彿 --> - <span slot="num" slot-scope="text, record, index">{{ - (current - 1) * size + index + 1 + <span slot="index" slot-scope="{ index }">{{ + (page - 1) * size + index + 1 }}</span> + <!-- 鍥炬爣 --> - <template slot="appIconPath" slot-scope="text"> + <template slot="appIconPath" slot-scope="{ record }"> <img - v-if="text.appIconPath" + v-if="record.appIconPath" class="pointer" height="20" width="20" - :src="text.appIconPath" - @click="handlePreview(text.appIconPath)" + :src="record.appIconPath" + @click="handlePreview(record.appIconPath)" /> <span v-else>--</span> </template> <!-- 涓婚绫诲瀷 --> - <template slot="appThemeName" slot-scope="text"> - {{ filterItems(text.appThemeName) }} + <template slot="appThemeName" slot-scope="{ record }"> + {{ filterItems(record.appThemeName) }} </template> <!-- 绠€浠� --> - <template slot="summary" slot-scope="text"> - <span :title="text.summary">{{ - text.summary ? text.summary : "--" + <template slot="summary" slot-scope="{ record }"> + <span :title="record.summary">{{ + record.summary ? record.summary : "--" }}</span> </template> <!-- 鐗堟湰 --> - <template slot="version" slot-scope="text"> - {{ text.version || text.version == 0 ? "v" + text.version : "--" }} + <template slot="version" slot-scope="{ record }"> + {{ + record.version || record.version == 0 ? "v" + record.version : "--" + }} </template> <!-- 绫诲瀷 --> - <template slot="appType" slot-scope="text"> - {{ text.appType === 1 ? "搴旂敤绋嬪簭" : "URL" }} + <template slot="appType" slot-scope="{ record }"> + {{ record.appType === 1 ? "搴旂敤绋嬪簭" : "URL" }} </template> <!-- 涓婁笅鏋� --> - <template slot="shelves" slot-scope="text"> + <template slot="shelves" slot-scope="{ record }"> <YSwitch checkedChildren="涓婃灦" unCheckedChildren="涓嬫灦" - v-model="text.shelves" - @change="changeShelves(text)" + v-model="record.shelves" + @change="changeShelves(record)" ></YSwitch> </template> <!-- 鎿嶄綔 --> - <template slot="action" slot-scope="text"> + <template slot="action" slot-scope="{ record }"> <a-space size="middle"> - <span class="primary pointer" @click="handleCloneAppData(text)" + <span class="primary pointer" @click="handleCloneAppData(record)" >鍏嬮殕鏁版嵁</span > - <span class="primary pointer" @click="handleEdit(text)">缂栬緫</span> - <span class="primary pointer" @click="handleCheck(text.id)" + <span class="primary pointer" @click="handleEdit(record)" + >缂栬緫</span + > + <span class="primary pointer" @click="handleCheck(record.id)" >鏌ョ湅</span > <span class="delete pointer" - :class="{ unDelete: userInfo.id != 1 && text.distribute }" - @click="handleDel(text.distribute, text.id)" + :class="{ unDelete: userInfo.id != 1 && record.distribute }" + @click="handleDel(record.distribute, record.id)" >鍒犻櫎</span > </a-space> </template> - </a-table> + </y-table> </div> <!-- 鏂板搴旂敤 --> <AddApp @@ -149,14 +144,13 @@ import { } from "@/services/market"; import local from "@/utils/local"; import { mapMutations, mapGetters } from "vuex"; -import { pageSizeOptions } from "@/config/pageConfig.js"; +import YTable from "@/components/YTable.vue"; const columns = [ { title: "搴忓彿", - dataIndex: "num", width: "65px", scopedSlots: { - customRender: "num", + customRender: "index", }, }, { @@ -206,6 +200,7 @@ export default { CheckSite, ChangeThem, CloneData, + YTable, }, data() { return { @@ -215,10 +210,9 @@ export default { tableData: [], // 琛ㄦ牸鏁版嵁 loading: false, searchVal: "", // 鎼滅储 - current: 1, + page: 1, size: 10, total: 0, - pageSizeOptions, selectedRowKeys: [], // 琛ㄦ牸鍕鹃€塱d鍒楄〃 selectedAppList: [], // 琛ㄦ牸鍕鹃€変俊鎭垪琛� AddVisible: false, @@ -258,7 +252,7 @@ export default { async getAppList() { this.loading = true; let res = await getAppList({ - page: this.current, + page: this.page, size: this.size, siteId: this.siteId, appName: `%${this.searchVal}%`, @@ -269,8 +263,8 @@ export default { this.dict = dict; this.SET_appDict(dict); if (res.data.code === 1) { - if (!data.length && this.current > 1) { - this.current -= 1; + if (!data.length && this.page > 1) { + this.page -= 1; this.getAppList(); } this.tableData = data; @@ -293,20 +287,12 @@ export default { }, // 鎼滅储 onSearch() { - this.current = 1; - this.getAppList(); - }, - // 缈婚〉 - handleChange(cur) { - this.current = cur; - this.getAppList(); - }, - // 鏀瑰彉姣忛〉鏄剧ず鏁伴噺 - showSizeChange(current, size) { - this.current = current; - this.size = size; + this.page = 1; + this.selectedRowKeys = []; + this.selectedAppList = []; this.getAppList(); }, + // 鍕鹃€夎〃鏍� onSelectChange(keys, rows) { this.selectedRowKeys = keys; @@ -382,6 +368,8 @@ export default { let { code, msg } = res.data; if (code === 1) { _this.$message.success(msg); + _this.selectedRowKeys = []; + _this.selectedAppList = []; _this.getAppList(); } }, diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue index a42ed5e71176b705e7100e91c990d1350168f4d6..08542da60fcfab403aebdf6c80a5459b2b4fd966 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddApp.vue @@ -33,21 +33,12 @@ </a-select> </a-form-model-item> <a-form-model-item label="搴旂敤鍥炬爣" prop="appIconPath"> - <a-upload - name="file" - list-type="picture-card" - :action="api + 'base/file/commonupload'" - :file-list="iconFileList" - @change="handleChangeIcon" - :accept="accept" - :before-upload="iconBeforeUpload" - @preview="handlePreview" - > - <div v-if="iconFileList.length < 1"> - <a-icon type="plus" /> - <div class="ant-upload-text">閫夋嫨鍥炬爣</div> - </div> - </a-upload> + <YUpload + accept=".png,.jpg,.jpeg,.svg" + :limit="1" + v-model="form.appIconPath" + listType="picture-card" + ></YUpload> </a-form-model-item> <a-form-model-item label="搴旂敤绠€浠�" prop="summary"> <a-textarea @@ -91,18 +82,16 @@ prop="filePath" v-if="form.appType === 1" > - <a-upload - name="file" - :action="api + 'base/file/commonupload'" - :multiple="false" - :file-list="fileList" - @change="handleChangeFile" - accept="application/x-zip-compressed" + <YUpload + accept=".zip" + :limit="1" + v-model="form.filePath" + @onSuccess="appUpload" > <a-button type="primary"> <a-icon type="upload" /> .zip鏂囦欢 </a-button> - </a-upload> + </YUpload> </a-form-model-item> <a-form-model-item v-else label="搴旂敤URL" prop="url"> <a-input v-model="form.url" placeholder="璇疯緭鍏ュ簲鐢║RL" /> @@ -158,10 +147,12 @@ import YSwitch from "../../../../components/yswitch/YSwitch.vue"; import { saveApp } from "@/services/market"; import { mapGetters } from "vuex"; import { checkCodeNumber } from "@/utils/validate"; +import YUpload from "@/components/YUpload.vue"; // import local from "@/utils/local"; export default { components: { YSwitch, + YUpload, }, props: { title: { @@ -182,9 +173,7 @@ export default { }, data() { return { - accept: "image/jpeg,image/png,image/svg+xml", api: process.env.VUE_APP_API_BASE_URL + "/", - iconFileList: [], labelCol: { span: 3, }, @@ -249,7 +238,6 @@ export default { { required: true, message: "璇烽€夋嫨鏄惁鏈夋洿鏂�", trigger: "change" }, ], }, - fileList: [], beFrom: "", // 鏉ヨ嚜缁堢杩樻槸绉诲姩绔� }; }, @@ -269,14 +257,10 @@ export default { // 鍏抽棴 onClose() { this.$refs.form.resetFields(); - this.fileList = []; - this.iconFileList = []; this.loading = false; this.Visible = false; }, resetForm() { - this.fileList = []; - this.iconFileList = []; this.$refs.form.resetFields(); }, // 鎻愪氦 @@ -295,81 +279,7 @@ export default { } }); }, - // 鍥炬爣涓婁紶涔嬪墠 - iconBeforeUpload(file) { - const isJpgOrPng = - file.type === "image/jpeg" || - file.type === "image/png" || - file.type === "image/svg+xml"; - if (!isJpgOrPng) { - this.$message.error("璇蜂笂浼爅peg銆乸ng鎴栬€卻vg鏍煎紡鍥剧墖!"); - } - const isLt5M = file.size / 1024 / 1024 < 5; - if (!isLt5M) { - this.$message.error("鍥剧墖澶у皬涓嶈兘瓒呰繃 5MB!"); - } - return isJpgOrPng && isLt5M; - }, - // 涓婁紶鍥炬爣 - handleChangeIcon({ file, fileList }) { - if ( - file.status && - file.status != "removed" && - file.response && - file.response.code == -1 - ) { - this.$message.error(file.response.msg); - fileList = fileList.filter((file) => file.response.code != -1); - } - this.iconFileList = [...fileList].slice(-1); - this.iconFileList = this.iconFileList.map((v) => { - if (v.response) { - v.url = v.response.url; - } - return v; - }); - if (this.iconFileList[0]) { - this.form.appIconPath = this.iconFileList[0].url; - } else { - this.form.appIconPath = ""; - } - }, - // 棰勮 - handlePreview(info) { - this.$viewerApi({ - images: [info.url], - }); - }, - // 涓婁紶搴旂敤 - handleChangeFile(info) { - if ( - info.file.status && - info.file.status != "removed" && - info.file.response && - info.file.response.code == -1 - ) { - this.$message.error(info.file.response.msg); - info.fileList = info.fileList.filter( - (file) => file.response.code != -1 - ); - } - let fileList = [...info.fileList]; - fileList = fileList.slice(-1); - fileList = fileList.map((file) => { - if (file.response) { - file.url = file.response.url; - } - return file; - }); - this.fileList = fileList; - if (this.fileList.length) { - this.form.fileName = this.fileList[0].name; - this.form.filePath = this.fileList[0].url; - } else { - this.form.filePath = ""; - this.form.fileName = ""; - } - }, + // 鏂板 onAdd(type) { Object.assign(this.form, this.$options.data().form); @@ -380,22 +290,6 @@ export default { onEdit(data) { this.$nextTick(() => { this.form = { ...data }; - this.fileList = [ - { - uid: "-1", - name: this.form.fileName, - status: "done", - url: this.form.filePath, - }, - ]; - this.iconFileList = [ - { - uid: "-2", - name: this.form.appIconPath, - status: "done", - url: this.form.appIconPath, - }, - ]; }); }, @@ -411,9 +305,12 @@ export default { } else { this.form.filePath = ""; this.form.fileName = ""; - this.fileList = []; } }, + appUpload({ fileList }) { + let fileName = fileList[0] ? fileList[0].name : ""; + this.form.fileName = fileName; + }, }, }; </script> diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue index 7e7c58083f333cc637f1b7fc59bcb70791013d80..fbff1fbcc21ecd31a520ace56cc40e61d580dd7f 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddData.vue @@ -136,22 +136,13 @@ ></YQuillEditor> </div> <!-- 鏂囦欢涓婁紶 --> - <a-upload + <YUpload v-else-if="v.fieldType == 'upload'" - :action="api + '/base/file/commonupload'" :multiple="true" - :file-list="v.fileList" - :beforeUpload="handleBeforeUpload" - @change=" - (info) => { - handleChange(info, v); - } - " - > - <a-button type="primary"> - <a-icon type="upload" /> 鐐瑰嚮涓婁紶 - </a-button> - </a-upload> + v-model="v.fieldValue" + :limit="0" + :MB="0" + ></YUpload> <!-- 琛ㄦ牸 --> <div v-else-if="v.fieldType == 'table'"> <div class="search-box"> @@ -176,22 +167,14 @@ /> </a-space> </div> - <a-table - bordered - size="small" - :scroll="{ y: 550 }" - :loading="tableLoading" - :pagination="{ - showTotal: (total) => `鍏� ${total} 鏉, - current: current, - total: total, - pageSize: size, - showSizeChanger: true, - showQuickJumper: true, - pageSizeOptions: pageSizeOptions, - }" + <y-table :columns="columns" - :data-source="tableList" + :data="tableList" + :pageSize.sync="size" + :page.sync="page" + :total="total" + :loading="loading" + :scroll="{ y: 550 }" :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: (keys, rows) => { @@ -203,15 +186,12 @@ ); }, }" - @change="changeTable" - :rowKey="(record) => record.id" + @changePagination="getData" > - <template slot="num" slot-scope="text, record, index"> - <span> - {{ (current - 1) * size + index + 1 }} - </span> - </template> - </a-table> + <span slot="index" slot-scope="{ index }">{{ + (page - 1) * size + index + 1 + }}</span> + </y-table> </div> </a-form-model-item> </template> @@ -246,10 +226,14 @@ import AppSelect from "../components/AppSelect.vue"; import { batchSaveDataset } from "@/services/market"; import { request } from "@/utils/request"; import local from "@/utils/local"; +import YUpload from "@/components/YUpload.vue"; +import YTable from "@/components/YTable.vue"; export default { components: { YQuillEditor, AppSelect, + YUpload, + YTable, }, props: { title: { @@ -269,7 +253,6 @@ export default { tableLoading: false, siteId: local.getLocal("siteId"), api: process.env.VUE_APP_API_BASE_URL, - pageSizeOptions: ["10", "30", "50", "100", "200"], labelCol: { span: 3, }, @@ -284,7 +267,7 @@ export default { year: null, selectedRowKeys: [], selectedRow: [], - current: 1, + page: 1, size: 10, total: 0, tableList: [], @@ -347,7 +330,7 @@ export default { this.loading = false; if (code === 1) { this.$message.success(msg); - this.$emit("addSuccess"); + this.$emit("success"); this.onClose(); } } else { @@ -364,9 +347,6 @@ export default { delete v.id; } // v.fieldValue = v.fieldValue ?? undefined; - if (v.fieldType == "upload") { - v.fileList = []; - } if (v.fieldType == "checkbox") { v.checkbox = []; } @@ -375,7 +355,7 @@ export default { title: "搴忓彿", width: "65px", scopedSlots: { - customRender: "num", + customRender: "index", }, }; this.fieldTypeValue = JSON.parse(v.fieldTypeValue); @@ -398,21 +378,7 @@ export default { onEdit(data) { setTimeout(() => { data.appInfoFieldList.forEach((v) => { - if (v.fieldType == "upload") { - if (v.fieldValue) { - let arr = v.fieldValue.split(","); - v.fileList = arr.map((v, i) => { - return { - uid: i, - name: v, - status: "done", - url: v, - }; - }); - } else { - v.fileList = []; - } - } else if (v.fieldType == "checkbox") { + if (v.fieldType == "checkbox") { if (v.fieldValue) { v.checkbox = v.fieldValue.split(","); } else { @@ -425,55 +391,55 @@ export default { }, // 鏇存敼鏂囦欢鍚嶇О - renameFile(originalFile, newName) { - return new File([originalFile], newName, { - type: originalFile.type, - lastModified: originalFile.lastModified, - }); - }, + // renameFile(originalFile, newName) { + // return new File([originalFile], newName, { + // type: originalFile.type, + // lastModified: originalFile.lastModified, + // }); + // }, - handleBeforeUpload(file) { - let index = file.name.lastIndexOf("."); - let fileName = file.name.slice(0, index); - let suffix = file.name.slice(index); - let uid = file.uid; - if (fileName.length >= 40) { - let newName = fileName.slice(0, 40) + "..." + suffix; - let newFile = this.renameFile(file, newName); - newFile.uid = uid; - return new Promise((resolve) => { - resolve(newFile); - }); - } - }, + // handleBeforeUpload(file) { + // let index = file.name.lastIndexOf("."); + // let fileName = file.name.slice(0, index); + // let suffix = file.name.slice(index); + // let uid = file.uid; + // if (fileName.length >= 40) { + // let newName = fileName.slice(0, 40) + "..." + suffix; + // let newFile = this.renameFile(file, newName); + // newFile.uid = uid; + // return new Promise((resolve) => { + // resolve(newFile); + // }); + // } + // }, - // 鏂囦欢涓婁紶鐘舵€佸彉鍖� - handleChange(info, row) { - if ( - info.file.status && - info.file.status != "removed" && - info.file.response && - info.file.response.code == -1 - ) { - this.$message.error(info.file.response.msg); - info.fileList = info.fileList.filter( - (file) => file.response.code != -1 - ); - } - let fileList = [...info.fileList]; - // fileList = fileList.slice(-1); - fileList = fileList.map((file) => { - if (!file.url && file.response) { - file.url = file.response.url; - } else if (!file.url && !file.response) { - file.url = ""; - } - return file; - }); - row.fileList = fileList; - row.fieldValue = fileList.map((v) => v.url).join(","); - this.$forceUpdate(); - }, + // // 鏂囦欢涓婁紶鐘舵€佸彉鍖� + // handleChange(info, row) { + // if ( + // info.file.status && + // info.file.status != "removed" && + // info.file.response && + // info.file.response.code == -1 + // ) { + // this.$message.error(info.file.response.msg); + // info.fileList = info.fileList.filter( + // (file) => file.response.code != -1 + // ); + // } + // let fileList = [...info.fileList]; + // // fileList = fileList.slice(-1); + // fileList = fileList.map((file) => { + // if (!file.url && file.response) { + // file.url = file.response.url; + // } else if (!file.url && !file.response) { + // file.url = ""; + // } + // return file; + // }); + // row.fileList = fileList; + // row.fieldValue = fileList.map((v) => v.url).join(","); + // this.$forceUpdate(); + // }, // 鏀瑰彉澶氶€夋鐘舵€� changeCheckBox(vals, row) { row.fieldValue = vals.join(","); @@ -507,23 +473,6 @@ export default { item.fieldValue = this.selectedRow.length ? this.selectedRow[0][this.serviceApiParams[key]] : ""; - if (item.fieldType == "upload") { - if (this.selectedRow.length) { - item.fileList = [ - ...item.fileList, - { - uid: -1, - name: this.selectedRow[0][this.serviceApiParams[key]], - status: "done", - url: this.selectedRow[0][this.serviceApiParams[key]], - }, - ].filter((v) => { - return !res.has(v.uuid) && res.set(v.uuid, 1); - }); - } else { - item.fileList = item.fileList.filter((v) => v.uid != -1); - } - } } }); } @@ -539,7 +488,7 @@ export default { this.tableLoading = true; let res = await request(this.api + this.serviceApi, "post", { size: this.size, - page: this.current, + page: this.page, siteId: this.siteId, ...obj, ...data, @@ -551,15 +500,12 @@ export default { this.total = total; } }, - changeTable(info) { - let { current, pageSize } = info; - this.current = current; - this.size = pageSize; - this.getData(); - }, + // 鎼滅储琛ㄦ牸 onSearch() { - this.current = 1; + this.page = 1; + this.selectedRowKeys = []; + this.selectedRow = []; this.getData(); }, changeShow(row) { diff --git a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddTheme.vue b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddTheme.vue index 5ba841058aaae550250a63bd0af913b41c749719..d46042b76e55abe43cec2aaf51cbc83550473deb 100644 --- a/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddTheme.vue +++ b/base-manager-ui/admin/src/pages/basicset/appmarket/modal/AddTheme.vue @@ -21,21 +21,12 @@ <a-input v-model="form.categoryCode" placeholder="璇疯緭鍏ヤ富棰樼紪鐮�" /> </a-form-model-item> <a-form-model-item label="涓婚灏侀潰" prop="cover"> - <a-upload - name="file" - list-type="picture-card" - :action="api + 'base/file/commonupload'" - :file-list="fileList" - @change="handleChangeCover" - :accept="accept" - :before-upload="beforeUpload" - @preview="handlePreview" - > - <div v-if="fileList.length < 1"> - <a-icon type="plus" /> - <div class="ant-upload-text">閫夋嫨灏侀潰</div> - </div> - </a-upload> + <YUpload + accept=".png,.jpg,.jpeg,.svg" + :limit="1" + v-model="form.cover" + listType="picture-card" + ></YUpload> </a-form-model-item> <a-form-model-item label="鎺掑簭" prop="sort"> <a-input-number v-model="form.sort" :min="1" /> @@ -52,6 +43,7 @@ <script> import { saveCategory } from "@/services/market"; import local from "@/utils/local"; +import YUpload from "@/components/YUpload.vue"; export default { props: { addVisile: { @@ -64,12 +56,11 @@ export default { default: "鏂板鍒嗙被", }, }, - components: {}, + components: { + YUpload, + }, data() { return { - accept: "image/jpeg,image/png", - api: process.env.VUE_APP_API_BASE_URL + "/", - fileList: [], form: { siteId: local.getLocal("siteId"), // 绔欑偣id siteName: local.getLocal("siteName"), // 绔欑偣鍚嶇О @@ -110,21 +101,10 @@ export default { onEdit(data) { this.$nextTick(() => { this.form = { ...data }; - if (this.form.cover) { - this.fileList = [ - { - uid: "-2", - name: this.form.cover, - status: "done", - url: this.form.cover, - }, - ]; - } }); }, // 鍏抽棴寮圭獥 handleClose() { - this.fileList = []; this.$refs.form.resetFields(); this.Visible = false; }, @@ -142,52 +122,9 @@ export default { } }); }, - // 涓婁紶涔嬪墠 - beforeUpload(file) { - const isJpgOrPng = - file.type === "image/jpeg" || file.type === "image/png"; - if (!isJpgOrPng) { - this.$message.error("璇蜂笂浼爅peg銆乸ng鏍煎紡鍥剧墖!"); - } - const isLt10M = file.size / 1024 / 1024 < 10; - if (!isLt10M) { - this.$message.error("鍥剧墖澶у皬涓嶈兘瓒呰繃 10MB!"); - } - return isJpgOrPng && isLt10M; - }, - // 涓婁紶灏侀潰 - handleChangeCover({ file, fileList }) { - if ( - file.status && - file.status != "removed" && - file.response && - file.response.code == -1 - ) { - this.$message.error(file.response.msg); - fileList = fileList.filter((file) => file.response.code != -1); - } - this.fileList = [...fileList].slice(-1); - this.fileList = this.fileList.map((v) => { - if (v.response) { - v.url = v.response.url; - } - return v; - }); - if (this.fileList[0]) { - this.form.cover = this.fileList[0].url; - } else { - this.form.cover = ""; - } - }, - // 棰勮 - handlePreview(info) { - this.$viewerApi({ - images: [info.url], - }); - }, + // 閲嶇疆 handleReset() { - this.fileList = []; this.$refs.form.resetFields(); }, },