shish 4 anni fa
parent
commit
3b66674713

+ 21 - 39
hdApp/src/admin/staff/add.vue

@@ -4,59 +4,41 @@
       <!-- 员工信息 -->
       <form @submit="formSubmit" @reset="formReset">
         <div class="module-com input-line-wrap">
-          <picker
-              mode="selector"
-              :value="form.roleId"
-              :range="roleList"
-              range-key="roleName"
-              @change="changeRoleFn"
-              class="tui-input"
-            >
+          
           <tui-list-cell class="line-cell" :arrow="true">
             <div class="tui-title required">角色</div>
+            <picker mode="selector" :value="form.roleId" :range="roleList" range-key="roleName" @change="changeRoleFn" class="tui-input" >
               <input v-model="form.roleId" name="roleId" type="text" hidden />
               <div v-if="form.roleId">{{ roleSelData.roleName }}</div>
               <div class="tui-placeholder" v-else>请选择</div>
+            </picker>
           </tui-list-cell>
-          </picker>
 
-        </div>
-        <!-- 收款通知 -->
-        <div class="module-com input-line-wrap">
-          <tui-list-cell class="line-cell between" padding="14upx 30upx" :hover="false">
-            <div class="tui-title">收款通知</div>
-            <div>
-              <switch :checked="form.remind == 0 ? false : true" @change="remindChangeFn" />
-            </div>
+          <tui-list-cell class="line-cell" padding="14upx 30upx" :hover="false">
+            <div class="tui-title">动态通知</div>
+            <view><switch style="transform:scale(0.7,0.7)" :checked="form.remind == 0 ? false : true" @change="remindChangeFn" /></view>
           </tui-list-cell>
-        </div>
-        <!-- 登录信息 -->
-        <div class="module-com input-line-wrap">
+
           <tui-list-cell class="line-cell" :hover="false">
-            <div class="tui-title">登录密码</div>
-            <input
-              v-model="form.password"
-              placeholder-class="phcolor"
-              class="tui-input"
-              name="password"
-              placeholder="请输入"
-              maxlength="50"
-              type="password"
-            />
+              <div class="tui-title required">手机号</div>
+              <input v-model="form.mobile" type="number" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="mobile" placeholder="员工手机号" />
           </tui-list-cell>
+
+          <tui-list-cell class="line-cell" :hover="false">
+              <div class="tui-title required">验证码</div>
+              <input v-model="form.authCode" type="number" style="width:330upx;" placeholder-class="phcolor" placeholder-style="color:#CCCCCC" class="tui-input" name="authCode" placeholder="员工收到的验证码" />
+              <button v-if="hasGet == false" class="admin-button-com blue middle" @click="requestAuthCode()">获取</button>
+              <button v-else class="admin-button-com default middle" >{{count}}</button>
+          </tui-list-cell>
+
           <tui-list-cell class="line-cell remark-wrap" :hover="false">
             <div class="tui-title">备注信息</div>
             <div class="tui-input">
-              <textarea
-                v-model="form.remark"
-                class="tui-textarea remark"
-                placeholder-class="phcolor"
-                placeholder="请输入内容"
-              />
+              <textarea v-model="form.remark" class="tui-textarea remark" placeholder-class="phcolor" style="height:80upx;" placeholder="请输入内容" />
             </div>
           </tui-list-cell>
         </div>
-        <!-- 提交 -->
+
         <div class="confirm-btn">
           <button class="admin-button-com big blue" formType="submit">确认</button>
         </div>
@@ -98,6 +80,8 @@ export default {
         password: "",
         status: 1,
         remark: "",
+        name:'',
+        mobile:''
       },
       roleList: [],
       roleSelData: {},
@@ -154,9 +138,7 @@ export default {
       getDet({ id: this.option.id }).then(res => {
         if (this.$util.isEmpty(res.data)) return;
         Object.keys(this.form).forEach((i, index) => {
-          // if (i != 'password') {
           this.form[i] = res.data[i];
-          // }
         });
         this.roleSelData = this.roleList.filter(
           e => this.form.roleId == e.id

+ 289 - 0
hdApp/src/admin/staff/detail.vue

@@ -0,0 +1,289 @@
+<template>
+  <div class="app-content">
+    <div v-show="showStaffArea">
+      <!-- 员工信息 -->
+      <form @submit="formSubmit" @reset="formReset">
+        <div class="module-com input-line-wrap">
+          <picker
+              mode="selector"
+              :value="form.roleId"
+              :range="roleList"
+              range-key="roleName"
+              @change="changeRoleFn"
+              class="tui-input"
+            >
+          <tui-list-cell class="line-cell" :arrow="true">
+            <div class="tui-title required">角色</div>
+              <input v-model="form.roleId" name="roleId" type="text" hidden />
+              <div v-if="form.roleId">{{ roleSelData.roleName }}</div>
+              <div class="tui-placeholder" v-else>请选择</div>
+          </tui-list-cell>
+          </picker>
+
+        </div>
+        <!-- 收款通知 -->
+        <div class="module-com input-line-wrap">
+          <tui-list-cell class="line-cell between" padding="14upx 30upx" :hover="false">
+            <div class="tui-title">收款通知</div>
+            <div>
+              <switch :checked="form.remind == 0 ? false : true" @change="remindChangeFn" />
+            </div>
+          </tui-list-cell>
+        </div>
+        <!-- 登录信息 -->
+        <div class="module-com input-line-wrap">
+          <tui-list-cell class="line-cell" :hover="false">
+            <div class="tui-title">登录密码</div>
+            <input
+              v-model="form.password"
+              placeholder-class="phcolor"
+              class="tui-input"
+              name="password"
+              placeholder="请输入"
+              maxlength="50"
+              type="password"
+            />
+          </tui-list-cell>
+          <tui-list-cell class="line-cell remark-wrap" :hover="false">
+            <div class="tui-title">备注信息</div>
+            <div class="tui-input">
+              <textarea
+                v-model="form.remark"
+                class="tui-textarea remark"
+                placeholder-class="phcolor"
+                placeholder="请输入内容"
+              />
+            </div>
+          </tui-list-cell>
+        </div>
+        <!-- 提交 -->
+        <div class="confirm-btn">
+          <button class="admin-button-com big blue" formType="submit">确认</button>
+        </div>
+      </form>
+    </div>
+    <div v-show="showMiniCodeArea">
+      <view style="text-align:center;">
+          <image style="width:200upx;height:200upx;margin:0 auto;" :src="miniCodeSrc"></image>
+          <view style="text-align:center;margin-top:20upx;margin-bottom:20upx;">请让员工扫描上方太阳码完成绑定</view>
+          <button class="admin-button-com big blue" @click="complete" style="padding-left:23upx;padding-right:23upx;">完成</button>
+      </view>
+    </div>
+  </div>
+</template>
+
+<script>
+import TuiListCell from "@/components/plugin/list-cell";
+import AppAvatarModule from "@/components/module/app-avatar";
+const form = require("@/utils/formValidation.js");
+// api
+import {
+  getRoleList,
+  getStaffDet as getDet,
+  updateStaff as update
+} from "@/api/staff";
+import { getDet as getMemberDet } from "@/api/member";
+import { prepareBind } from "@/api/shop-admin";
+export default {
+  name: "staff-add",
+  components: {
+    TuiListCell,
+    AppAvatarModule
+  },
+  data() {
+    return {
+      form: {
+        roleId: "",
+        remind: 1,
+        password: "",
+        status: 1,
+        remark: "",
+      },
+      roleList: [],
+      roleSelData: {},
+      showStaffArea: true,
+      showMiniCodeArea: false,
+      miniCodeSrc:'',
+      memberData: {}
+    };
+  },
+  onLoad() {},
+  onShow() {
+    if (this.option.id) {
+      uni.setNavigationBarTitle({
+        title: `修改员工`
+      });
+    } else {
+      uni.setNavigationBarTitle({
+        title: `添加员工`
+      });
+    }
+  },
+  methods: {
+    init() {
+      let data = uni.getStorageSync("addStaffData");
+      if (data) {
+        uni.removeStorageSync("addStaffData");
+        this.form = data.form;
+        this.roleList = data.roleList;
+        this.roleSelData = data.roleSelData;
+      }
+      let memberData = uni.getStorageSync("addSelMember");
+      if (memberData) {
+        uni.removeStorageSync("addSelMember");
+        this.memberData = memberData;
+        this.form.userId = memberData.id;
+      }
+
+      if (data) return false;
+
+      this._getRoleList().then(res => {
+        if (this.option.id) {
+          this._getDet();
+        }
+      });
+    },
+    // api
+    async _getRoleList() {
+      await getRoleList().then(res => {
+        if (this.$util.isEmpty(res.data)) return false;
+        this.roleList = res.data.list;
+      });
+    },
+    _getDet() {
+      getDet({ id: this.option.id }).then(res => {
+        if (this.$util.isEmpty(res.data)) return;
+        Object.keys(this.form).forEach((i, index) => {
+          // if (i != 'password') {
+          this.form[i] = res.data[i];
+          // }
+        });
+        this.roleSelData = this.roleList.filter(
+          e => this.form.roleId == e.id
+        )[0];
+
+        if (this.form.userId && this.form.userId != "0") {
+          this._getMemberDet();
+        }
+      });
+    },
+    // 获取客户详情
+    _getMemberDet() {
+      getMemberDet({ userId: this.form.userId }).then(res => {
+        if (this.$util.isEmpty(res.data)) return;
+        this.memberData = res.data;
+      });
+    },
+    // option
+    // 关联微信
+    selMemberFn() {
+      let data = {
+        form: this.form,
+        roleList: this.roleList,
+        roleSelData: this.roleSelData
+      };
+      uni.setStorageSync("addStaffData", data);
+      this.$util.pageTo({
+        url: "/admin/staff/sel-member",
+        query: {
+          ...this.option
+        }
+      });
+    },
+    changeRoleFn(e) {
+      this.roleSelData = this.roleList[e.detail.value];
+      this.form.roleId = this.roleSelData.id;
+    },
+    remindChangeFn(e) {
+      this.form.remind = e.detail.value ? 1 : 0;
+    },
+    statusChangeFn(e) {
+      this.form.status = e.detail.value ? 1 : 0;
+    },
+    confirmFn() {
+      let hostFn = this.option.id ? update : prepareBind;
+      if (this.option.id) {
+        this.form.id = this.option.id;
+      }
+      hostFn(this.form).then(res => {
+        console.log('23rh23r23')
+        console.log(res)
+        console.log(this.option.id)
+        if(typeof(this.option.id) == 'undefined'){
+          this.showMiniCodeArea = true;
+          this.miniCodeSrc = res.data.miniCode;
+          this.showStaffArea = false;
+          console.log(this.miniCodeSrc)
+          console.log('--oo0oooo---')
+        }else{
+          let promptText = this.option.id ? "修改成功!" : "添加成功!";
+          this.$msg(promptText);
+          setTimeout(() => {
+            this.$util.pageTo(1);
+          }, 1000);
+        }
+        
+      });
+    },
+    complete(){
+      this.$util.pageTo(1)
+    },
+    // 表单验证
+    formSubmit(e) {
+      // 表单规则
+      let rules = [
+        {
+          name: "roleId",
+          rule: ["required"],
+          msg: ["请选择角色"]
+        }
+      ];
+      // 进行表单检查
+      let formData = e.detail.value;
+      let checkRes = form.validation(formData, rules);
+      // 验证通过!
+      if (!checkRes) {
+        this.confirmFn();
+      } else {
+        this.$msg(checkRes);
+      }
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.app-content {
+  min-height: calc(100vh - 20upx);
+  padding-top: 20upx;
+}
+.prompt-text {
+  color: $fontColor3;
+  padding-left: 30upx;
+  margin-bottom: 30upx;
+}
+// ---
+.module-com {
+  margin-bottom: 20upx;
+  .member-wrap {
+    .member-det {
+      font-size: 24upx;
+      margin-left: 20upx;
+    }
+  }
+  .remark-wrap {
+    align-items: flex-start;
+    .remark {
+      height: 240upx;
+    }
+  }
+}
+// 按钮
+.confirm-btn {
+  width: calc(100% - 60upx);
+  margin: 60upx 30upx 20upx;
+  .admin-button-com {
+    width: 100%;
+  }
+}
+</style>

+ 1 - 1
hdApp/src/admin/staff/list.vue

@@ -29,7 +29,7 @@
 								</div>
 							</div>
 							<div class="list-det-right">
-								<div  @click="pageTo({url: '/admin/staff/add',query: {id: item.id}})">
+								<div  @click="pageTo({url: '/admin/staff/detail',query: {id: item.id}})">
 									<i class="iconfont iconbianji"></i>
 								</div>
 								<div v-if="item.super == 0 && item.id != loginInfo.shopAdminId" @click="delModalFn(item)">

+ 2 - 1
hdApp/src/pages.json

@@ -188,7 +188,8 @@
 			"root": "admin/staff",
 			"pages": [
 				{ "path": "list", "style": { "navigationBarTitleText": "员工管理" } },
-				{ "path": "add", "style": { "navigationBarTitleText": "" } },
+				{ "path": "add", "style": { "navigationBarTitleText": "添加员工" } },
+				{ "path": "detail", "style": { "navigationBarTitleText": "员工详情" } },
 				{ "path": "sel-member", "style": { "navigationBarTitleText": "客户列表" } },
 				{ "path": "achieve", "style": { "navigationBarTitleText": "员工业绩" } },
 				{ "path": "miniAutoLogin", "style": { "navigationBarTitleText": "绑定帐号" } }