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;