From c8b92c58b2b00be0af0a79007b10337e77bd2924 Mon Sep 17 00:00:00 2001 From: 18650502300 <18650502300@163.com> Date: Thu, 24 Oct 2024 15:20:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 2 +- src/api/user/user.js | 9 ++++ src/views/system/device/index.vue | 18 +++---- src/views/system/partner/index.vue | 57 +++++++++++++-------- src/views/system/store/index.vue | 22 ++++---- src/views/system/user/index.vue | 4 +- src/views/user/user/index.vue | 82 +++--------------------------- 7 files changed, 76 insertions(+), 118 deletions(-) diff --git a/.env.production b/.env.production index a6a833d..257931e 100644 --- a/.env.production +++ b/.env.production @@ -6,4 +6,4 @@ ENV = 'production' # 电动车租赁系统/生产环境 # VUE_APP_BASE_API = '/prod-api' -VUE_APP_BASE_API = 'https://zc.chuangtewl.com' +VUE_APP_BASE_API = 'https://zc.chuangtewl.com/prod-api' diff --git a/src/api/user/user.js b/src/api/user/user.js index 2ec7653..a13e23b 100644 --- a/src/api/user/user.js +++ b/src/api/user/user.js @@ -10,6 +10,15 @@ export function listUser(query) { }) } +// 查询app用户列表 +export function listAppUser(query) { + return request({ + url: '/user/user/appList', + method: 'get', + params: query + }) +} + // 根据手机号快速搜索用户列表 export function fastSearch(query) { return request({ diff --git a/src/views/system/device/index.vue b/src/views/system/device/index.vue index eb0df7e..994ea9c 100644 --- a/src/views/system/device/index.vue +++ b/src/views/system/device/index.vue @@ -148,17 +148,17 @@ <el-table-column label="电量" align="center" prop="remainingPower" sortable="custom" :sort-orders="['descending', 'ascending']" :formatter="formatPower" v-if="columns[10].visible"/> <el-table-column label="车辆状态" align="center" prop="status" v-if="columns[11].visible"> <template slot-scope="scope"> - <dict-tag :options="dict.type.as_device_status" :value="scope.row.status"/> + <dict-tag :options="dict.type.rl_device_status" :value="scope.row.status"/> </template> </el-table-column> <el-table-column label="锁" align="center" prop="lockStatus" width="60" v-if="columns[12].visible"> <template slot-scope="scope"> - <dict-tag :options="dict.type.et_device_lock_status" :value="scope.row.lockStatus"/> + <dict-tag :options="dict.type.rl_device_lock_status" :value="scope.row.lockStatus"/> </template> </el-table-column> <el-table-column label="网络" align="center" prop="onlineStatus" width="60" v-if="columns[13].visible"> <template slot-scope="scope"> - <dict-tag :options="dict.type.as_online_status" :value="scope.row.onlineStatus"/> + <dict-tag :options="dict.type.rl_online_status" :value="scope.row.onlineStatus"/> </template> </el-table-column> <el-table-column label="二维码" align="center" v-if="columns[14].visible"> @@ -464,7 +464,7 @@ import { listStore, getStore, delStore, addStore, updateStore } from "@/api/rl/s export default { name: "Device", - dicts: ['as_online_status', 'as_device_status','et_device_lock_status'], + dicts: ['rl_online_status', 'rl_device_status','rl_device_lock_status'], components: {}, props: { initLng: { @@ -570,7 +570,7 @@ export default { window.removeEventListener('scroll', this.handleScroll, true) }, created() { - + listHardwareVersion(this.queryParams).then(response => { this.hardwareVersionOptions = response.rows; this.loading2 = false; @@ -613,7 +613,7 @@ export default { let data = { pageNum: 1, pageSize: 20, - + } listModel(data).then(response => { // console.log(response,'responseresponseresponse'); @@ -624,13 +624,13 @@ export default { // })); console.log( this.options,' this.options this.options'); }); - + }, getlistStore() { let data = { pageNum: 1, pageSize: 20, - + } listStore(data).then(response => { console.log(response,'店铺'); @@ -641,7 +641,7 @@ export default { // })); console.log( this.options,' this.options this.options'); }); - + }, handleScroll() { let scrollTop = window.scrollY; diff --git a/src/views/system/partner/index.vue b/src/views/system/partner/index.vue index c1b7f7a..9e2df3e 100644 --- a/src/views/system/partner/index.vue +++ b/src/views/system/partner/index.vue @@ -186,22 +186,14 @@ <el-option v-for="item in agentList" :key="item.agentId" :label="item.name+' ' +item.contact" :value="item.agentId"> </el-option> </el-select> - <!-- <el-select v-model="form.cityId" placeholder="请选择代理城市"> - <el-option - v-for="item in cityOptions" - :key="item.cityId" - :label="item.name" - :value="item.cityId" - ></el-option> - </el-select> --> </el-form-item> - + </el-col> <el-col :span="12"> <el-form-item label="角色"> - <el-select v-model="form.roleIds" multiple placeholder="请选择角色"> + <el-select v-model="form.roleIds" placeholder="请选择角色"> <el-option - v-for="item in roleOptions" + v-for="item in filteredRoleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId" @@ -211,10 +203,10 @@ </el-form-item> </el-col> </el-row> - <el-row> + <el-row v-if="form.roleIds == 4"> <el-col :span="12"> - <el-form-item label="分账比例(%)" label-width="100" prop="dividendProportion"> - <el-input style="width: 64%" v-model="form.dividendProportion" placeholder="请输入分账比例" maxlength="11" /> + <el-form-item label="分账比例(%)" label-width="100" prop="inputDividendProportion"> + <el-input style="width: 64%" v-model="inputDividendProportion" placeholder="请输入分账比例" maxlength="11" @input="handleInput"/> </el-form-item> </el-col> <el-col :span="12"> @@ -243,7 +235,7 @@ </el-radio-group> </el-form-item> </el-col> - <el-col :span="12"> + <el-col :span="12" v-if="form.roleIds == 4"> <el-form-item label="分账状态" prop="dividendStatus"> <el-radio-group v-model="form.dividendStatus"> <el-radio @@ -284,6 +276,11 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { name: "User", dicts: ['sys_normal_disable', 'sys_user_sex','et_dividend_item','rl_user_type','rl_dividend_switch'], + computed: { + filteredRoleOptions() { + return this.roleOptions.filter(item => item.roleKey !== 'common' && item.roleKey !== 'agent'); + }, + }, components: { Treeselect }, data() { return { @@ -321,6 +318,7 @@ export default { form: { dividendStatus: "0" }, + inputDividendProportion: 30, // 用于输入的百分比 defaultProps: { children: "children", label: "label" @@ -369,9 +367,11 @@ export default { agentList:[], // 表单校验 rules: { + agentId: [ + { required: true, message: "请选择代理商", trigger: "blur" }, + ], dividendProportion: [ { required: true, message: "分账比例不能为空", trigger: "blur" }, - { pattern: /^\d+$/, message: '分账比例必须为正整数', trigger: 'blur' } ], cityId: [ { required: true, message: "代理城市不能为空", trigger: "blur" }, @@ -409,7 +409,7 @@ export default { setTimeout(() => { console.log(this.dicts,'dictsdicts'); }, 200); - + // this.getDeptTree(); this.getConfigKey("sys.user.initPassword").then(response => { this.initPassword = response.msg; @@ -418,11 +418,20 @@ export default { this.getAgentList() }, methods: { + handleInput() { + // 当输入时,将输入的百分比转换为原始值 + console.log(111111111111) + const proportion = parseFloat(this.inputDividendProportion); + if (!isNaN(proportion)) { + console.log(22222222222) + this.form.dividendProportion = proportion / 100; + } + }, getAgentList() { let data = { pageNum: 1, pageSize: 30, - + } listAgent(this.addDateRange(data)).then(response => { console.log(response,'responseresponseresponse'); @@ -433,7 +442,7 @@ export default { // })); console.log( this.options,' this.options this.options'); }); - + }, formatDividendProportion(row) { let dividendProportion = row.dividendProportion; @@ -567,9 +576,11 @@ export default { this.roleOptions = response.roles; this.areaOptions = response.areas; this.$set(this.form, "postIds", response.postIds); - this.$set(this.form, "roleIds", response.roleIds); - // console.log(1111111111111) + this.$set(this.form, "roleIds", response.roleIds[0]); this.$set(this.form, "areas", response.areas); + this.form.roleIds = response.roleIds[0]; // 取出第一个角色 ID + console.log("回显-=====roleIds[0]",response.roleIds[0]) + this.inputDividendProportion = this.form.dividendProportion * 100; this.open = true; this.title = "修改系统用户"; this.form.password = ""; @@ -603,6 +614,10 @@ export default { submitForm: function() { this.$refs["form"].validate(valid => { this.form.userType = '03'; + this.form.roleIds = [this.form.roleIds]; + console.log("提交roleIds=========="+this.form.roleIds) + this.form.dividendProportion = this.inputDividendProportion; // 转换为0.3 + // console.log('保存的分账比例:', this.form.dividendProportion); this.form.dividendStatus = this.form.dividendStatus === "1" ? 1:0; if (valid) { if (this.form.userId != undefined) { diff --git a/src/views/system/store/index.vue b/src/views/system/store/index.vue index 3f9b0c9..f0c1ffd 100644 --- a/src/views/system/store/index.vue +++ b/src/views/system/store/index.vue @@ -47,8 +47,8 @@ <el-table v-loading="loading" :data="storeList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> <el-table-column label="ID" align="center" prop="storeId" width="50" /> - <el-table-column label="所属用户" align="center" prop="userName" width="120"> - <user-link slot-scope="d" :id="d.row.userId" :name="d.row.userName" /> + <el-table-column label="所属用户" align="center" prop="createBy" width="120"> + <user-link slot-scope="d" :id="d.row.userId" :name="d.row.createBy" /> </el-table-column> <el-table-column label="商户图片" align="center" prop="picture" width="100"> <template slot-scope="scope"> @@ -101,7 +101,7 @@ </el-table> <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" - @pagination="getList" /> + @pagination="getList" /> <!-- 添加或修改商户列表对话框 --> <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body :close-on-click-modal="false"> @@ -117,7 +117,7 @@ </el-select> <!-- <user-input v-model="form.userId" :query="userQuery" :disabled="hasView(views.user)"/> --> </form-col> - <form-col label="是否在地图展示" prop="show" :span="span" label-width="9em"> + <form-col label="是否在地图展示" prop="show" :span="span" label-width="9em"> <el-switch v-model="form.show" /> </form-col> <form-col label="店铺名称" prop="name" :span="span * 2"> @@ -222,7 +222,7 @@ export default { address: null, deleted: null }, - + // 表单参数 form: {}, // 表单校验 @@ -248,7 +248,7 @@ export default { }, showPlaceSearchMap: false, span: 12, - + options:[], modelList:[] }; @@ -280,7 +280,7 @@ export default { this.searchList() this.getList(); this.getlistModel() - + }, methods: { parseTime, @@ -315,13 +315,13 @@ export default { })); console.log( this.options,' this.options this.options'); }); - + }, getlistModel() { let data = { pageNum: 1, pageSize: 20, - + } listModel(this.addDateRange(data)).then(response => { console.log(response,'responseresponseresponse'); @@ -332,9 +332,9 @@ export default { })); console.log( this.options,' this.options this.options'); }); - + }, - + /** 查询商户列表列表 */ getList() { this.loading = true; diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 6b2a0aa..5642d00 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -341,7 +341,7 @@ </template> <script> -import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user"; +import { listAppUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user"; import { getToken } from "@/utils/auth"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -673,4 +673,4 @@ export default { } } }; -</script> \ No newline at end of file +</script> diff --git a/src/views/user/user/index.vue b/src/views/user/user/index.vue index 62bf11e..d182559 100644 --- a/src/views/user/user/index.vue +++ b/src/views/user/user/index.vue @@ -55,48 +55,6 @@ <el-row :gutter="10" class="mb8"> -<!-- <el-col :span="1.5">--> -<!-- <el-button--> -<!-- type="primary"--> -<!-- plain--> -<!-- icon="el-icon-plus"--> -<!-- size="mini"--> -<!-- @click="handleAdd"--> -<!-- v-hasPermi="['system:user:add']"--> -<!-- >新增</el-button>--> -<!-- </el-col>--> -<!-- <el-col :span="1.5">--> -<!-- <el-button--> -<!-- type="success"--> -<!-- plain--> -<!-- icon="el-icon-edit"--> -<!-- size="mini"--> -<!-- :disabled="single"--> -<!-- @click="handleUpdate"--> -<!-- v-hasPermi="['system:user:edit']"--> -<!-- >修改</el-button>--> -<!-- </el-col>--> -<!-- <el-col :span="1.5">--> -<!-- <el-button--> -<!-- type="danger"--> -<!-- plain--> -<!-- icon="el-icon-delete"--> -<!-- size="mini"--> -<!-- :disabled="multiple"--> -<!-- @click="handleDelete"--> -<!-- v-hasPermi="['system:user:remove']"--> -<!-- >删除</el-button>--> -<!-- </el-col>--> -<!-- <el-col :span="1.5">--> -<!-- <el-button--> -<!-- type="info"--> -<!-- plain--> -<!-- icon="el-icon-upload2"--> -<!-- size="mini"--> -<!-- @click="handleImport"--> -<!-- v-hasPermi="['system:user:import']"--> -<!-- >导入</el-button>--> -<!-- </el-col>--> <el-col :span="1.5"> <el-button type="warning" @@ -135,35 +93,11 @@ ></el-switch> </template> </el-table-column> -<!-- <el-table-column label="是否实名" align="center" prop="isAuthentication">--> -<!-- <template slot-scope="scope">--> -<!-- <dict-tag :options="dict.type.et_user_is_authentication" :value="scope.row.isAuthentication" />--> -<!-- </template>--> -<!-- </el-table-column>--> -<!-- <el-table-column--> -<!-- label="操作"--> -<!-- align="center"--> -<!-- width="240"--> -<!-- class-name="small-padding fixed-width">--> -<!-- <template slot-scope="scope">--> -<!-- <el-button--> -<!-- size="mini"--> -<!-- type="text"--> -<!-- icon="el-icon-edit"--> -<!-- @click="handleUpdate(scope.row)"--> -<!-- v-hasPermi="['system:user:edit']"--> -<!-- >修改</el-button>--> -<!-- <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']">--> -<!-- <el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>--> -<!-- <el-dropdown-menu slot="dropdown">--> -<!-- <el-dropdown-item command="handleResetPwd" icon="el-icon-key"--> -<!-- v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item>--> -<!-- <el-dropdown-item command="handleBandSysUser" icon="el-icon-circle-check"--> -<!-- v-hasPermi="['system:user:edit']">绑定系统用户</el-dropdown-item>--> -<!-- </el-dropdown-menu>--> -<!-- </el-dropdown>--> -<!-- </template>--> -<!-- </el-table-column>--> + <el-table-column label="是否实名" align="center" prop="isAuthentication"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.rl_user_is_authentication" :value="scope.row.isAuthentication" /> + </template> + </el-table-column> </el-table> <pagination @@ -321,13 +255,13 @@ </template> <script> -import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus,bandSystemUser } from "@/api/user/user"; +import { listAppUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus,bandSystemUser } from "@/api/user/user"; import { getToken } from "@/utils/auth"; import { listUser as getSysUserList } from "@/api/system/user"; export default { name: "User", - dicts: ['sys_normal_disable', 'sys_user_sex','et_user_is_authentication','et_asuser_role'], + dicts: ['sys_normal_disable', 'sys_user_sex','rl_user_is_authentication','et_asuser_role'], data() { return { // 遮罩层 @@ -452,7 +386,7 @@ export default { /** 查询用户列表 */ getList() { this.loading = true; - listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => { + listAppUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => { this.userList = response.rows; this.total = response.total; this.loading = false;