baijunde 1 an în urmă
părinte
comite
23b1f649ec

+ 2 - 2
src/api/system/coupon.js

@@ -10,11 +10,11 @@ export function listCoupon(query) {
 }
 
 // 查询优惠券详细
-export function getCoupon(getByid) {
+export function getCoupon(query) {
   return request({
     url: '/coupon/list',
     method: 'get',
-    // params: query
+    params: query
   })
 }
 

+ 2 - 12
src/components/map/map.vue

@@ -78,14 +78,13 @@ export default {
     };
   },
   mounted() {
-    console.log(333, this.dataObj, this.location);
     this.mapInit();
+    this.showToast(this.location)
     // this.placeSearch(this.address);
   },
   methods: {
     showToast(address) {
       // this.placeSearch(address.address);
-      console.log(444, address);
       this.location.P = address.lat;
       this.location.Q = address.lng;
       this.address = address.address;
@@ -106,13 +105,10 @@ export default {
         let address = this.poiArr[this.selectedIndex];
         addressName = address.name + address.address;
         location = address.location;
-        console.log(address.name + address.address, address.location);
       } else if (this.clickType == 2) {
-        console.log(this.address, this.map);
         addressName = this.address;
         location = this.map;
       } else if (this.clickType == 3) {
-        console.log(this.address, this.map1);
         addressName = this.address;
         location = this.map1;
       }
@@ -182,7 +178,7 @@ export default {
           resizeEnable: true,
           viewMode: "3D", // 是否为3D地图模式
           zoom: 12, // 初始化地图级别
-          // center: [116.397428, 39.90923] // 初始化地图中心点位置  默认当前行政区
+          // center: [this.location.Q, this.location.P] // 初始化地图中心点位置  默认当前行政区
         });
         // this.autoComplete = new AMap.AutoComplete({
         //   city: "全国",
@@ -228,13 +224,11 @@ export default {
     // },
     //结果的回调
     keywordSearch_CallBack(data) {
-      console.log(111, data);
       var poiArr = data.poiList.pois;
       var resultCount = poiArr.length;
       this.poiArr = poiArr; //左边要渲染的数据
       for (var i = 0; i < resultCount; i++) {
         this.addmarker(i, poiArr[i]);
-        console.log(poiArr[i]);
         this.poiArr[i].url = this.poiArr[i].photos
           ? this.poiArr[i].photos[0]
             ? this.poiArr[i].photos[0].url
@@ -247,7 +241,6 @@ export default {
     addmarker(i, d) {
       var lngX = d.location.getLng();
       var latY = d.location.getLat();
-      console.log(lngX, latY);
       var markerOption = {
         map: this.mapObj,
         position: new AMap.LngLat(lngX, latY),
@@ -265,7 +258,6 @@ export default {
         autoMove: true,
         offset: new AMap.Pixel(0, -30),
       });
-      console.log();
       this.windowsArr.push(infoWindow);
       var _this = this;
       var aa = (e) => {
@@ -307,8 +299,6 @@ export default {
       this.selectedIndex = pointid;
       // this.map = this.marker[pointid]
       this.map1 = this.poiArr[pointid].location;
-      console.log(222, this.mapObj, this.marker[pointid]);
-      console.log(this.marker[pointid], this.poiArr[pointid]);
       this.address = this.poiArr[pointid].address + this.poiArr[pointid].name;
       this.windowsArr[pointid].open(this.mapObj, this.marker[pointid]);
     },

+ 11 - 4
src/views/alarmWorksheet/index.vue

@@ -40,7 +40,7 @@
       </el-form>
   
       <el-table v-loading="loading" :data="alarmList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
+        <!-- <el-table-column type="selection" width="55" align="center" /> -->
         <el-table-column label="订单编号" align="center" prop="orderNo" />
         <!-- <el-table-column label="id" align="center" prop="id" /> -->
         <el-table-column label="客户姓名" align="center" prop="userName" />
@@ -51,7 +51,13 @@
                 <!-- {{ JSON.parse(scope.row.address).address }} -->
             </template>
         </el-table-column>
-        
+        <el-table-column label="时间" align="center">
+            <template slot-scope="scope">
+              {{ scope.row.createTime.slice(0,10) }}
+              {{ scope.row.createTime.slice(11,20) }}
+                <!-- {{ JSON.parse(scope.row.address).address }} -->
+            </template>
+        </el-table-column>
         <el-table-column label="技师姓名" align="center" prop="jsName" />
         <el-table-column label="技师电话" align="center" prop="jsPhone" />
         
@@ -72,7 +78,8 @@
               type="text"
               icon="el-icon-s-opportunity"
               @click="handleUpdate(scope.row)"
-            >已处理</el-button>
+              v-if="scope.row.alarmStatus === 0"
+            >处理</el-button>
             <el-button
               size="mini"
               type="text"
@@ -190,7 +197,7 @@
         this.loading = true;
         listAlarm(this.queryParams).then(response => {
           this.alarmList = response.data.records;
-          this.total = response.total;
+          this.total = response.data.total;
           this.loading = false;
         });
       },

+ 12 - 12
src/views/carousel/index.vue

@@ -70,7 +70,7 @@
   
       <el-table v-loading="loading" :data="lbtList" @selection-change="handleSelectionChange">
         
-        <el-table-column type="selection" width="55" align="center" />
+        <!-- <el-table-column type="selection" width="55" align="center" /> -->
         <el-table-column label="序号" align="center" prop="cSort" />
         <!-- <el-table-column label="主键" align="center" prop="cId" /> -->
         <!-- <el-table-column label="图片地址" align="center" prop="cImgUrl" /> -->
@@ -130,7 +130,7 @@
                 :before-upload="beforeAvatarUpload"
                 :show-file-list="false"
                 >
-                <img v-if="form.cImgUrl" :src="form.cImgUrl" class="avatar">
+                <img v-if="lbtDetail.length>48" :src="lbtDetail" class="avatar">
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i>
             </el-upload>
           </el-form-item>
@@ -196,7 +196,8 @@
         // 表单校验
         rules: {
         },
-        imageUrl:''
+        imageUrl:'',
+        lbtDetail:''
       };
     },
     created() {
@@ -221,9 +222,7 @@
             formData.append('file',file.file)
             upload(formData).then(response => {
                 this.queryParams.cImgUrl =  response.fileName
-                this.form.cImgUrl = process.env.VUE_APP_BASE_API+response.fileName
-                console.log(this.queryParams.cImgUrl,"传值1111111111111111111!")
-                console.log(this.form.cImgUrl,"回显的值2222222")
+                this.lbtDetail = process.env.VUE_APP_BASE_API+response.fileName
             })
         },
         beforeAvatarUpload(file) {
@@ -292,16 +291,17 @@
       /** 修改按钮操作 */
       handleUpdate(row) {
         this.reset();
-        const cId = row.cId || this.ids
+        const cId = row.cId
         this.open = true;
         this.title = "修改轮播图";
         const lbtid = {
           cId:cId
         }
-        getLbt(lbtid).then(response => {
-          console.log(response,"修改轮播图")
-          this.form = response.data
-          this.form.cImgUrl = process.env.VUE_APP_BASE_API+this.form.cImgUrl
+        getLbt(lbtid).then(res => {
+          this.form = res.data
+          this.lbtDetail = process.env.VUE_APP_BASE_API+res.data.cImgUrl
+          this.queryParams.cImgUrl =  res.data.cImgUrl
+          
         })
       },
       /** 提交按钮 */
@@ -309,9 +309,9 @@
         this.$refs["form"].validate(valid => {
           if (valid) {
             if (this.form.cId != null) {
+              
               this.form.cImgUrl = this.queryParams.cImgUrl
                 addLbt(this.form).then(response => {
-                  console.log(this.form.cImgUrl,"修改成功00000000000000000000")
                 this.$modal.msgSuccess("修改成功");
                 this.open = false;
                 this.getList();

+ 2 - 2
src/views/comment/index.vue

@@ -15,7 +15,7 @@
         </el-form-item>
       </el-form>
   
-      <el-row :gutter="10" class="mb8">
+      <!-- <el-row :gutter="10" class="mb8">
         <el-col :span="1.5">
           <el-button
             type="primary"
@@ -59,7 +59,7 @@
           >导出</el-button>
         </el-col>
         <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-      </el-row>
+      </el-row> -->
   
       <el-table v-loading="loading" :data="commentList" @selection-change="handleSelectionChange">
         <!-- <el-table-column type="selection" width="55" align="center" /> -->

+ 214 - 84
src/views/coupon/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <!-- <el-form
+    <el-form
       :model="queryParams"
       ref="queryForm"
       size="small"
@@ -16,70 +16,52 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-
-
-      <el-form-item label="优惠值" prop="discountValue">
-        <el-input
-          v-model="queryParams.discountValue"
-          placeholder="请输入优惠值"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="门槛金额" prop="thresholdAmount">
-        <el-input
-          v-model="queryParams.thresholdAmount"
-          placeholder="请输入门槛金额"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="获取方式" prop="obtainWay">
-        <el-input
-          v-model="queryParams.obtainWay"
-          placeholder="请输入获取方式:1:手动领取 2,自动发放"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-
-
-      <el-form-item label="有效天数" prop="termDays">
-        <el-input
-          v-model="queryParams.termDays"
-          placeholder="请输入优惠券有效期天数,0"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="使用数量" prop="usedNum">
-        <el-input
-          v-model="queryParams.usedNum"
-          placeholder="请输入已使用数量"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="部门" prop="deptName">
+        <el-select
+          v-model="queryParams.deptId"
+          placeholder="请选择"
+          style="width: 100px"
+        >
+          <el-option
+            v-for="item in dept"
+            :key="item.deptId"
+            :label="item.deptName"
+            :value="item.deptId"
+          >
+          </el-option>
+        </el-select>
       </el-form-item>
-
-
-      <el-form-item label="限领数量" prop="userLimit">
-        <el-input
-          v-model="queryParams.userLimit"
-          placeholder="请输入每个人限领的数量"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="类型" prop="discountType">
+        <el-select
+          v-model="queryParams.discountType"
+          placeholder="请选择"
+          style="width: 100px"
+        >
+          <el-option
+            v-for="item in typeState"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
       </el-form-item>
-      <el-form-item label="是否删除" prop="isDelete">
-        <el-input
-          v-model="queryParams.isDelete"
-          placeholder="请输入是否删除0否1是"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="状态" prop="status">
+        <el-select
+          v-model="queryParams.status"
+          placeholder="请选择"
+          style="width: 100px"
+        >
+          <el-option
+            v-for="item in serviceState"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
       </el-form-item>
 
-
       <el-form-item>
         <el-button
           type="primary"
@@ -92,10 +74,10 @@
           >重置</el-button
         >
       </el-form-item>
-    </el-form> -->
+    </el-form>
 
     <el-row :gutter="10" class="mb8">
-      <!-- <el-col :span="1.5">
+      <el-col :span="1.5">
         <el-button
           type="primary"
           plain
@@ -105,7 +87,7 @@
           v-hasPermi="['system:coupon:add']"
           >新增</el-button
         >
-      </el-col> -->
+      </el-col>
       <!-- <el-col :span="1.5">
         <el-button
           type="success"
@@ -152,8 +134,9 @@
       :data="couponList"
       @selection-change="handleSelectionChange"
     >
-      <el-table-column type="selection" width="55" align="center" />
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
       <el-table-column label="优惠券id" align="center" prop="id" />
+      <el-table-column label="部门" align="center" prop="deptName" />
       <el-table-column label="优惠券名称" align="center" prop="name" />
       <el-table-column label="优惠券类型" align="center" prop="type">
         <template slot-scope="scope">
@@ -173,13 +156,24 @@
           }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="优惠值" align="center" prop="discountValue" />
+      <el-table-column label="优惠值" align="center" prop="discountValue">
+        <template slot-scope="scope">
+          <span v-if="scope.row.discountType == 3">{{
+            scope.row.discountValue
+          }}</span>
+          <span v-if="scope.row.discountType == 2"
+            >{{ scope.row.rebValue }}折</span
+          >
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="折扣值" align="center" prop="discountValue" v-if="couponList.discountType == 2"/> -->
+
       <el-table-column label="门槛金额" align="center" prop="thresholdAmount" />
-      <el-table-column label="获取方式" align="center" prop="obtainWay">
+      <!-- <el-table-column label="获取方式" align="center" prop="obtainWay">
         <template slot-scope="scope">
           <span>{{ scope.row.obtainWay === 1 ? "手动领取" : "自动发放" }}</span>
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column
         label="优惠券有效期天数"
         align="center"
@@ -187,22 +181,22 @@
       />
       <el-table-column label="优惠券配置状态" align="center" prop="status">
         <template slot-scope="scope">
-          <span>{{ scope.row.status === 0 ? "未使用" : "进行中" }}</span>
+          <span>{{ scope.row.status === 0 ? "停用" : "已启用" }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="已使用数量" align="center" prop="usedNum" />
+      <!-- <el-table-column label="已使用数量" align="center" prop="usedNum" />
       <el-table-column
         label="每个人限领的数量"
         align="center"
         prop="userLimit"
-      />
+      /> -->
       <!-- <el-table-column
         label="拓展参数字段,保留字段"
         align="center"
         prop="extParam"
       />
       <el-table-column label="是否删除0否1是" align="center" prop="isDelete" /> -->
-      <!-- <el-table-column
+      <el-table-column
         label="操作"
         align="center"
         class-name="small-padding fixed-width"
@@ -225,7 +219,7 @@
             >删除</el-button
           >
         </template>
-      </el-table-column> -->
+      </el-table-column>
     </el-table>
 
     <pagination
@@ -238,13 +232,24 @@
 
     <!-- 添加或修改优惠券的规则信息对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="550px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+      <el-form ref="form" :model="form"  label-width="100px">
+        <el-form-item label="部门" v-if="userDeptId == 100">
+          <el-select v-model="form.deptName" placeholder="请选择">
+            <el-option
+              @click.native="handleSelectTeam(item)"
+              v-for="item in options"
+              :key="item.deptId"
+              :label="item.deptName"
+              :value="item.deptName"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="优惠券名称" prop="name">
           <el-input
             v-model="form.name"
             placeholder="请输入优惠券名称,可以和活动名称保持一致"
           />
-          
         </el-form-item>
         <!-- <el-form-item label="优惠券类型" prop="discountType">
           <el-input
@@ -253,21 +258,48 @@
           />
           
         </el-form-item> -->
-        <el-form-item label="优惠值" prop="discountValue">
+        <el-form-item label="优惠券类型" prop="discountValue">
+          <template>
+            <!-- <el-radio v-model="form.discountType" label="3">满减</el-radio>
+            <el-radio v-model="form.discountType" label="2">折扣券</el-radio> -->
+            <el-radio-group v-model="form.discountType" @change="handleChange">
+              <el-radio :label="3">满减</el-radio>
+              <el-radio :label="2">折扣券</el-radio>
+            </el-radio-group>
+          </template>
+        </el-form-item>
+        <el-form-item
+          label="满减值"
+          prop="discountValue"
+          v-if="form.discountType == 3"
+        >
           <el-input v-model="form.discountValue" placeholder="请输入优惠值" />
         </el-form-item>
+        <el-form-item
+          label="折扣值"
+          prop="discountValue"
+          v-if="form.discountType == 2"
+        >
+          <el-input
+            v-model="form.rebValue"
+            placeholder="请输入折扣值(1-10)"
+            type="number"
+            :maxlength="3"
+            oninput="if(value<=0){value=null} if(value>10){value=10} if(value.length > 3){value = value.slice(0, 3)}"
+          />
+        </el-form-item>
         <el-form-item label="门槛金额" prop="thresholdAmount">
           <el-input
             v-model="form.thresholdAmount"
             placeholder="请输入门槛金额"
           />
         </el-form-item>
-        <el-form-item label="获取方式:" prop="obtainWay">
+        <!-- <el-form-item label="获取方式:" prop="obtainWay">
           <el-input
             v-model="form.obtainWay"
             placeholder="请输入获取方式:1:手动领取 2,自动发放"
           />
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="有效天数" prop="termDays">
           <el-input
             v-model="form.termDays"
@@ -277,11 +309,21 @@
         <!-- <el-form-item label="已使用数量" prop="usedNum">
           <el-input v-model="form.usedNum" placeholder="请输入已使用数量" />
         </el-form-item> -->
-        <el-form-item label="限领数量" prop="userLimit">
+        <!-- <el-form-item label="限领数量" prop="userLimit">
           <el-input
             v-model="form.userLimit"
             placeholder="请输入每个人限领的数量"
           />
+        </el-form-item> -->
+        <el-form-item label="是否启用" prop="discountValue">
+          <template>
+            <!-- <el-radio v-model="form.discountType" label="3">满减</el-radio>
+            <el-radio v-model="form.discountType" label="2">折扣券</el-radio> -->
+            <el-radio-group v-model="form.status">
+              <el-radio :label="0">关闭</el-radio>
+              <el-radio :label="1">启用</el-radio>
+            </el-radio-group>
+          </template>
         </el-form-item>
         <!-- <el-form-item label="是否删除0否1是" prop="isDelete">
           <el-input
@@ -306,12 +348,20 @@ import {
   addCoupon,
   updateCoupon,
 } from "@/api/system/coupon";
+import { listJs, getDept } from "@/api/system/js";
 import { upload } from "@/api/public";
+import { getInfo } from "@/api/login";
 
 export default {
   name: "Coupon",
   data() {
     return {
+      userDeptId: "", //当前账号部门id
+      city: "",
+      deptId: null,
+      options: [], //优惠券部门
+      //优惠券类型
+      radio: "1",
       // 遮罩层
       loading: true,
       // 选中数组
@@ -337,7 +387,6 @@ export default {
         pages: 1,
         name: null,
         type: null,
-        discountType: null,
         discountValue: null,
         thresholdAmount: null,
         obtainWay: null,
@@ -348,6 +397,8 @@ export default {
         extParam: null,
         isDelete: null,
         handleWay: 0, //0默认,1新增,2修改,
+        discountType: null,
+        deptName: null,
       },
       // 表单参数
       form: {},
@@ -364,7 +415,7 @@ export default {
           {
             required: true,
             message: "优惠券类型,1:普通券不能为空",
-            trigger: "change",
+            trigger: "blur",
           },
         ],
         discountType: [
@@ -375,7 +426,7 @@ export default {
           },
         ],
         discountValue: [
-          { required: true, message: "优惠值不能为空", trigger: "blur" },
+          { required: false, message: "优惠值不能为空", trigger: "blur" },
         ],
         obtainWay: [
           {
@@ -402,18 +453,55 @@ export default {
           },
         ],
       },
+      serviceState: [
+        { value: 1, label: "启用中" },
+        { value: 0, label: "停用" },
+      ],
+      typeState: [
+        { value: 2, label: "折扣" },
+        { value: 3, label: "满减" },
+      ],
+      dept:[]
     };
   },
   created() {
     // this.getList();
     this.getCouponList();
   },
+  mounted() {
+    this.getInfo();
+    this.getDept();
+  },
   methods: {
+    handleSelectTeam(item) {
+      this.form.deptId = item.deptId;
+      this.form.deptName = item.deptName;
+    },
+    // 获取部门
+    getDept() {
+      // let data = {};
+      // data.deptId = deptId;
+      // data.nStatus = 0;
+      getDept().then((res) => {
+        this.dept = res.data
+        this.options = res.data;
+
+        // this.jsList = res.data;
+      });
+    },
+    //选择部门
+    handleDeptChange(selection) {
+      this.form.deptId = selection.deptId;
+      this.form.deptName = selection.deptName;
+      // this.getJsList(selection.deptId)
+    },
+    handleChange() {
+      // this.form.discountValue = null
+    },
     /** 查询优惠券的规则信息列表 */
     getList() {
       this.loading = true;
       listCoupon().then((res) => {
-        console.log(res);
         this.couponList = res.rows;
         // this.total = res.total;
         this.loading = false;
@@ -423,7 +511,7 @@ export default {
     getCouponList(queryParams) {
       if (queryParams) {
         getCoupon(this.queryParams).then((res) => {
-          console.log(res);
+          
           this.couponList = res.data.records;
           this.total = res.data.records.length;
           this.loading = false;
@@ -448,6 +536,7 @@ export default {
         name: null,
         type: null,
         discountType: null,
+        rebValue:null,
         discountValue: null,
         thresholdAmount: null,
         obtainWay: null,
@@ -510,10 +599,40 @@ export default {
         if (this.handleWay == 1) {
           //1新增
           let data = this.form;
+          if(!data.deptName){
+            this.$modal.msgError("优惠券部门不能为空");
+            return
+          }else if(!data.name){
+            this.$modal.msgError("优惠券名称不能为空");
+            return
+          }else if(!data.discountType){
+            this.$modal.msgError("请选择优惠券类型");
+            return
+          }else if(data.discountType == 2 &&!data.rebValue){
+            this.$modal.msgError("优惠券折扣值不能为空");
+            return
+          }else if(data.discountType ==3 && !data.discountValue){
+            this.$modal.msgError("优惠券满减值不能为空");
+            return
+          }else if(!data.thresholdAmount){
+            this.$modal.msgError("优惠券门槛金额不能为空");
+            return
+          }else if(!data.termDays){
+            this.$modal.msgError("优惠券有效天数不能为空");
+            return
+          }else if(data.status == null){
+            this.$modal.msgError("请选择优惠券是否启用");
+            return
+          }
+          // else if(!data.userLimit){
+          //   this.$modal.msgError("优惠券限领数量不能为空");
+          //   return
+          // }
           addCoupon(data).then((res) => {
             if (res.code == 200) {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
+              this.city = "";
               this.getCouponList();
             }
           });
@@ -523,6 +642,7 @@ export default {
             if (res.code == 200) {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
+              this.city = "";
               this.getCouponList();
             } else {
               this.$modal.msgSuccess(res.msg);
@@ -572,6 +692,16 @@ export default {
         `coupon_${new Date().getTime()}.xlsx`
       );
     },
+    getInfo() {
+      getInfo().then((res) => {
+        this.userDeptId = res.user.deptId;
+        this.form.deptId = res.user.deptId;
+        // this.deptId = res.user.dept.deptId;
+        // this.getblock(res.user.dept.deptId);
+        // this.columnar(res.user.dept.deptId);
+        // this.ranking(res.user.dept.deptId);
+      });
+    },
   },
 };
 </script>

+ 1 - 3
src/views/fare/index.vue

@@ -125,7 +125,7 @@
       @selection-change="handleSelectionChange"
     >
       <!-- <el-table-column type="selection" width="55" align="center" /> -->
-      <!-- <el-table-column label="主键" align="center" prop="id" /> -->
+      <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="部门名称" align="center" prop="deptName" />
       <el-table-column label="起步价" align="center" prop="baseFare" />
       <el-table-column label="起步距离" align="center" prop="baseDistance" />
@@ -309,7 +309,6 @@ export default {
       this.form.deptName = row.deptName
       this.form.id = row.id
       updateSetting(this.form).then((res) => {
-          console.log(res.code);
           if(res.code == 200){
               this.$modal.msgSuccess("修改成功");
               this.resetQuery()
@@ -325,7 +324,6 @@ export default {
     // 获取部门
     getDeptList() {
       getDept().then((res) => {
-        console.log(res);
         this.options = res.data;
       });
     },

+ 95 - 31
src/views/index.vue

@@ -6,7 +6,17 @@
         <div class="center">
           {{ upOrderNum.turnover }}
         </div>
-        <div class="bnottom">{{ Turnover }}%,同上月对比</div>
+        <!-- <div class="bnottom">{{ Turnover }}%,同上月对比</div> -->
+        <div class="bnottom">
+          <!-- {{ getAmount.slice(0,6)}}%,同上月对比 -->
+          {{
+            typeof Turnover === "string" && Turnover.length > 0
+              ? Turnover.slice(0, 6) +
+                (Turnover.length > 6 ? "" : "") +
+                "%,同上月对比"
+              : "数据无效"
+          }}
+        </div>
         <!-- <div class="bnottom"> {{0+ (300-200)/200 *100}}%,同上月对比</div> -->
       </div>
       <div class="contrast_data">
@@ -14,7 +24,17 @@
         <div class="center">
           {{ upOrderNum.upOrderNum }}
         </div>
-        <div class="bnottom">{{ order }}%,同上月对比</div>
+        <!-- <div class="bnottom">{{ order }}%,同上月对比</div> -->
+        <div class="bnottom">
+          <!-- {{ getAmount.slice(0,6)}}%,同上月对比 -->
+          {{
+            typeof order === "string" && order.length > 0
+              ? order.slice(0, 6) +
+                (order.length > 6 ? "" : "") +
+                "%,同上月对比"
+              : "数据无效"
+          }}
+        </div>
       </div>
       <div class="contrast_data">
         <div class="top">提现</div>
@@ -23,11 +43,13 @@
         </div>
         <div class="bnottom">
           <!-- {{ getAmount.slice(0,6)}}%,同上月对比 -->
-          {{ 
-    (typeof getAmount === 'string' && getAmount.length > 0) ? 
-      getAmount.slice(0, 6) + (getAmount.length > 6 ? '' : '') + '%,同上月对比' :
-      '数据无效'
-  }}
+          {{
+            typeof getAmount === "string" && getAmount.length > 0
+              ? getAmount.slice(0, 6) +
+                (getAmount.length > 6 ? "" : "") +
+                "%,同上月对比"
+              : "数据无效"
+          }}
         </div>
       </div>
       <div class="contrast_data">
@@ -35,14 +57,34 @@
         <div class="center">
           {{ upOrderNum.userNum }}
         </div>
-        <div class="bnottom">{{ userNum }}%,同上月对比</div>
+        <!-- <div class="bnottom">{{ userNum }}%,同上月对比</div> -->
+        <div class="bnottom">
+          <!-- {{ getAmount.slice(0,6)}}%,同上月对比 -->
+          {{
+            typeof userNum === "string" && userNum.length > 0
+              ? userNum.slice(0, 6) +
+                (userNum.length > 6 ? "" : "") +
+                "%,同上月对比"
+              : "数据无效"
+          }}
+        </div>
       </div>
       <div class="contrast_data">
         <div class="top">教练数量</div>
         <div class="center">
           {{ upOrderNum.upJsNum }}
         </div>
-        <div class="bnottom">{{ jsNum }}%,同上月对比</div>
+        <!-- <div class="bnottom">{{ jsNum }}%,同上月对比</div> -->
+        <div class="bnottom">
+          <!-- {{ getAmount.slice(0,6)}}%,同上月对比 -->
+          {{
+            typeof jsNum === "string" && jsNum.length > 0
+              ? jsNum.slice(0, 6) +
+                (jsNum.length > 6 ? "" : "") +
+                "%,同上月对比"
+              : "数据无效"
+          }}
+        </div>
       </div>
     </div>
     <div class="chart">
@@ -64,8 +106,9 @@
             start-placeholder="开始日期"
             end-placeholder="结束日期"
             :picker-options="pickerOptions"
-            value-format = "yyyy-MM-dd"
+            value-format="yyyy-MM-dd"
             @change="ranking"
+            :clearable = "false"
           >
           </el-date-picker>
           <div class="js_num">
@@ -85,7 +128,7 @@
 </template>
 
 <script>
-import { block,columnar,ranking } from "@/api/system/index";
+import { block, columnar, ranking } from "@/api/system/index";
 import { getInfo } from "@/api/login";
 export default {
   name: "Index",
@@ -149,7 +192,7 @@ export default {
           },
         ],
       },
-      value2: "",
+      value2:['2024-01-01','2025-01-01'],
       jsList: [],
       upOrderNum: {},
       Turnover: 0,
@@ -157,36 +200,44 @@ export default {
       getAmount: 0,
       userNum: 0,
       jsNum: 0,
-      source:[],
-      deptId:''
+      source: [],
+      deptId: "",
     };
   },
   mounted() {
+    this.defaultDate();
     this.getInfo();
   },
   methods: {
-    ranking(){
+    defaultDate() {
+     
+      
+    },
+    clearDate(){
+      
+      // this.ranking()
+    },
+    ranking() {
       let data = {};
       data.deptId = this.deptId;
-      data.start = this.value2[0]
-      data.end = this.value2[1]
-      console.log(this.value2);
-      ranking(data).then(res => {
-        this.jsList = res
-      })
+      data.start = this.value2[0];
+      data.end = this.value2[1];
+      ranking(data).then((res) => {
+        this.jsList = res;
+      });
     },
-    columnar(deptId){
+    columnar(deptId) {
       let data = {};
       data.deptId = deptId;
-      columnar(data).then(res => {
-        this.source = res
-         // 初始化 echarts
-    this.initBarChart();
-      })
+      columnar(data).then((res) => {
+        this.source = res;
+        // 初始化 echarts
+        this.initBarChart();
+      });
     },
     getInfo() {
       getInfo().then((res) => {
-        this.deptId = res.user.dept.deptId
+        this.deptId = res.user.dept.deptId;
         this.getblock(res.user.dept.deptId);
         this.columnar(res.user.dept.deptId);
         this.ranking(res.user.dept.deptId);
@@ -230,8 +281,15 @@ export default {
         legend: {},
         tooltip: {},
         dataset: {
-          dimensions: ["横坐标", "营业额", "教练总数", "用户总数","订单数量","提现金额"],
-          source:this.source,
+          dimensions: [
+            "横坐标",
+            "营业额",
+            "教练总数",
+            "用户总数",
+            "订单数量",
+            "提现金额",
+          ],
+          source: this.source,
           // source: [
           //   { product: "Matcha Latte", 2015: 43.3, 2016: 85.8, 2017: 93.7 },
           //   { product: "Milk Tea", 2015: 83.1, 2016: 73.4, 2017: 55.1 },
@@ -243,7 +301,13 @@ export default {
         yAxis: {},
         // Declare several bar series, each will be mapped
         // to a column of dataset.source by default.
-        series: [{ type: "bar" }, { type: "bar" }, { type: "bar" }, { type: "bar" }, { type: "bar" }],
+        series: [
+          { type: "bar" },
+          { type: "bar" },
+          { type: "bar" },
+          { type: "bar" },
+          { type: "bar" },
+        ],
       };
       option && myChart.setOption(option);
     },

+ 0 - 1
src/views/login.vue

@@ -142,7 +142,6 @@ export default {
           }
           this.$store.dispatch("Login", this.loginForm).then(() => {
             this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
-            console.log(this.redirect,"this.redirect")
           }).catch(() => {
             this.loading = false;
             if (this.captchaEnabled) {

+ 64 - 50
src/views/order/index.vue

@@ -158,12 +158,12 @@
           </template>
         </el-table-column> -->
       <el-table-column label="时间" align="center" prop="dtCreateTime">
-        <template slot-scope="scope">
-          <span
-            >{{ scope.row.dtCreateTime.slice(0, 10) }}
-            {{ scope.row.dtCreateTime.slice(11, 19) }}</span
-          >
-        </template>
+        <!-- <template slot-scope="scope">
+          <span>
+            {{ scope.row.dtCreateTime.slice(0, 10) }}
+            {{ scope.row.dtCreateTime.slice(11, 19) }}
+          </span>
+        </template> -->
       </el-table-column>
       <!-- <el-table-column label="推荐者id" align="center" prop="cTjOpenId" /> -->
       <!-- <el-table-column label="创建时间" align="center" prop="dtCreateTime" width="180">
@@ -317,33 +317,41 @@
               placeholder="请选择创建时间">
             </el-date-picker>
           </el-form-item>-->
+        <div class="old_js">
+          <el-form-item label="原技师姓名" prop="endTime" v-if="form.oldJsId">
+            <el-input v-model="form.oldJs.cName" placeholder="" />
+          </el-form-item>
+          <el-form-item label="原技师手机号" prop="endTime" v-if="form.oldJsId">
+            <el-input v-model="form.oldJs.cPhone" placeholder="" />
+          </el-form-item>
+        </div>
         <el-form-item label="订单明细" prop="cGoods">
           <!-- <el-input v-model="form.cGoods" type="textarea" placeholder="请输入内容" /> -->
           <!-- <div v-for="(item, index) in form.cGoods" :key="index"> -->
-            <div class="orderDetails">
-              <el-table :data="form.cGoods" style="width: 100%">
-                <el-table-column prop="cTitle" label="标题"> </el-table-column>
-                <el-table-column
-                  label="封面图"
-                  align="center"
-                  prop="cCover"
-                  width="100"
-                >
-                  <template slot-scope="scope">
-                    <image-preview
-                      :src="scope.row.cCover"
-                      :width="50"
-                      :height="50"
-                    />
-                  </template>
-                </el-table-column>
-                <el-table-column prop="cLdList" label="亮点"> </el-table-column>
-                <el-table-column prop="nMinute" label="时长"> </el-table-column>
-                <el-table-column prop="dPrice" label="价格"> </el-table-column>
-                <el-table-column prop="number" label="项目个数">
-                </el-table-column>
-              </el-table>
-            </div>
+          <div class="orderDetails">
+            <el-table :data="form.cGoods" style="width: 100%">
+              <el-table-column prop="cTitle" label="标题"> </el-table-column>
+              <el-table-column
+                label="封面图"
+                align="center"
+                prop="cCover"
+                width="100"
+              >
+                <template slot-scope="scope">
+                  <image-preview
+                    :src="scope.row.cCover"
+                    :width="50"
+                    :height="50"
+                  />
+                </template>
+              </el-table-column>
+              <el-table-column prop="cLdList" label="亮点"> </el-table-column>
+              <el-table-column prop="nMinute" label="时长"> </el-table-column>
+              <el-table-column prop="dPrice" label="价格"> </el-table-column>
+              <el-table-column prop="number" label="项目个数">
+              </el-table-column>
+            </el-table>
+          </div>
           <!-- </div> -->
         </el-form-item>
       </el-form>
@@ -351,11 +359,13 @@
         <el-button type="primary" @click="submitForm" v-show="subShow"
           >确 定</el-button
         >
-        <el-button type="primary" @click="transferOrder" v-if="takeOrder == 0">转 单</el-button>
+        <el-button type="primary" @click="transferOrder" v-if="takeOrder == 0"
+          >转 单</el-button
+        >
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
-    <el-dialog title="转单" :visible.sync="istransfer" style="height: auto;">
+    <el-dialog title="转单" :visible.sync="istransfer" style="height: auto">
       <el-form :model="transferOrderForm">
         <el-form-item label="转单技师:">
           <el-select
@@ -373,9 +383,9 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submitTransfer">确 定</el-button>
-          <el-button @click="istransfer = false">取 消</el-button>
-        </div>
+        <el-button type="primary" @click="submitTransfer">确 定</el-button>
+        <el-button @click="istransfer = false">取 消</el-button>
+      </div>
     </el-dialog>
   </div>
 </template>
@@ -467,7 +477,7 @@ export default {
         cJsId: "",
         cId: "",
       },
-      takeOrder:0
+      takeOrder: 0,
     };
   },
   created() {
@@ -477,29 +487,30 @@ export default {
     //转单
     transferOrder() {
       this.istransfer = true;
-      this.transferOrderForm.cId = this.form.cId
+      this.transferOrderForm.cId = this.form.cId;
     },
-    submitTransfer(){
-      transferOrder(this.transferOrderForm).then(res => {
+    submitTransfer() {
+      transferOrder(this.transferOrderForm).then((res) => {
         if (res.code == 200) {
           this.$message({
             message: "转单成功",
             type: "success",
           });
           this.istransfer = false;
-          this.getList();
+          // this.getList();
+          this.$router.go(0);
         } else {
           this.$message({
             message: res.msg,
             type: "error",
           });
         }
-      })
+      });
     },
     getJsList(deptId) {
-      let data = {}
-      data.deptId = deptId
-      data.nStatus = 0
+      let data = {};
+      data.deptId = deptId;
+      data.nStatus = 0;
       getjsList(data).then((res) => {
         res.data.records.forEach((item) => {
           this.jsList.push({
@@ -592,7 +603,7 @@ export default {
       this.reset();
       const cId = {
         cId: row.cId || this.ids,
-      }
+      };
       getOrder(cId).then((response) => {
         this.form = response.data;
         this.open = true;
@@ -600,9 +611,12 @@ export default {
       });
     },
     // 详情按钮操作
-    handleInfo(row) { 
-      this.takeOrder = row.nStatus
-      this.jsList = []
+    handleInfo(row) {
+      this.form = [];
+      this.depart = "";
+      this.arrival = "";
+      this.takeOrder = row.nStatus;
+      this.jsList = [];
       this.getJsList(row.deptId);
       // this.reset();
       const cId = {
@@ -638,7 +652,7 @@ export default {
           // this.depart = data.regeocode.formatted_address;
           data.regeocode.formatted_address.length > 0
             ? (this.depart = data.regeocode.formatted_address)
-            : "";
+            : (this.depart = "");
         }
       } catch (error) {
         console.error("请求失败:", error);
@@ -712,7 +726,7 @@ export default {
   z-index: 9999 !important;
   background: rgba(0, 0, 0, 0.5);
 }
-::v-deep .el-dialog{
+::v-deep .el-dialog {
   height: auto;
 }
 </style>

+ 92 - 14
src/views/project/index.vue

@@ -157,8 +157,8 @@
     </el-pagination>
 
     <!-- 添加或修改项目对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
         <el-form-item label="标题" prop="cTitle">
           <el-input v-model="form.cTitle" placeholder="请输入标题" />
         </el-form-item>
@@ -218,6 +218,38 @@
             placeholder="请输入内容"
           />
         </el-form-item>
+        <!-- <el-form-item label="推荐技师部门">
+          <el-select
+            value-key="deptId"
+            v-model="city"
+            placeholder="请选择"
+            @change="handleDeptChange"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.deptId"
+              :label="item.deptName"
+              :value="item"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item> -->
+        <!-- <el-form-item label="推荐技师">
+          <el-select
+            v-model="recommendTechnician"
+            multiple
+            filterable
+            allow-create
+            value-key="id"
+          >
+            <el-option
+              v-for="item in jsList"
+              :key="item.id"
+              :label="item.cName"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item> -->
         <el-form-item label="项目详情" prop="cDetail">
           <!-- <el-input v-model="form.cDetail" type="textarea" placeholder="请输入内容" /> -->
           <!-- <editor v-model="form.cDetail" :min-height="192"/> -->
@@ -264,12 +296,13 @@ import {
   addXiangmu,
   highList,
 } from "@/api/system/xiangmu";
+import { listJs, getDept } from "@/api/system/js";
 import { upload } from "@/api/public";
 export default {
   name: "Xiangmu",
   data() {
     return {
-      strogeImg:'',
+      strogeImg: "",
       changeImg: "",
       checkedCities: [],
       // 遮罩层
@@ -307,19 +340,56 @@ export default {
         nSaleNumber: null,
         dtCreateTime: null,
       },
+      recommendTechnician:[],
       // 表单参数
-      form: {},
+      form: {
+        
+      },
       checkboxGroup: [],
       cLdList: [],
       // 表单校验
       rules: {},
+      jsList: [],
+      city: "",
+      options: [], //推荐技师部门
+      deptId: "", //推荐部门id
     };
   },
   created() {
     this.getList();
     this.getCate();
   },
+  mounted() {
+    this.getDept();
+  },
   methods: {
+    // 获取部门
+    getDept() {
+      // let data = {};
+      // data.deptId = deptId;
+      // data.nStatus = 0;
+      getDept().then((res) => {
+        this.options = res.data;
+
+        // this.jsList = res.data;
+      });
+    },
+    //选择部门
+    handleDeptChange(selection) {
+      this.deptId = selection.deptId;
+      this.getJsList(selection.deptId)
+    },
+    //获取技师列表
+    getJsList(deptId) {
+      let data = {}
+      data.deptId = deptId
+      data.pageType = 1,
+      // data.size = 10,
+      listJs(data).then(res => {
+        
+        this.jsList = res.records;
+      })
+    },
     // 亮点
     getCate() {
       highList().then((res) => {
@@ -343,7 +413,8 @@ export default {
     /** 查询项目列表 */
     getList() {
       this.loading = true;
-      listXiangmu(this.queryParams).then((response) => {
+      listXiangmu(this.queryParams).then((response) => {0
+        
         this.xiangmuList = response.data.records;
         this.xiangmuList.forEach((element) => {
           element.cCover = process.env.VUE_APP_BASE_API + element.cCover;
@@ -359,9 +430,8 @@ export default {
       const formData = new FormData();
       formData.append("file", file.file);
       upload(formData).then((response) => {
-        this.changeImg = process.env.VUE_APP_BASE_API + response.fileName
-        console.log(this.changeImg);
-        this.queryParams.cCover = response.fileName
+        this.changeImg = process.env.VUE_APP_BASE_API + response.fileName;
+        this.queryParams.cCover = response.fileName;
         // this.form.cCover = process.env.VUE_APP_BASE_API+response.fileName
         // console.log(typeof this.form.cCover,"this.form.cCover")
         // console.log(response,"图片上传成功!")
@@ -399,7 +469,7 @@ export default {
     // 取消按钮
     cancel() {
       this.open = false;
-      this.changeImg = '';
+      this.changeImg = "";
       this.queryParams.cCover = this.strogeImg;
       this.reset();
     },
@@ -439,8 +509,8 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd() {
-      this.changeImg = ''
-      this.checkedCities = []
+      this.changeImg = "";
+      this.checkedCities = [];
       this.checkboxGroup = [];
       this.reset();
       this.open = true;
@@ -459,12 +529,16 @@ export default {
       // this.checkedCities = row.cLdList
       this.title = "修改项目";
       getXiangmu(cId).then((res) => {
+        
         let str = res.data.cLdList;
         this.checkedCities = str.split(",");
         this.form = res.data;
+        // this.jsList = res.data.jsList;
         // this.form.cCover = process.env.VUE_APP_BASE_API+res.data.cCover
-        this.strogeImg = res.data.cCover
-        res.data.cCover == ''?this.changeImg = '': this.changeImg = process.env.VUE_APP_BASE_API + res.data.cCover;
+        this.strogeImg = res.data.cCover;
+        res.data.cCover == ""
+          ? (this.changeImg = "")
+          : (this.changeImg = process.env.VUE_APP_BASE_API + res.data.cCover);
         this.form.cDetail = process.env.VUE_APP_BASE_API + res.data.cDetail;
       });
     },
@@ -476,8 +550,9 @@ export default {
             this.queryParams.cCover == ""
               ? (this.form.cCover = "")
               : (this.form.cCover = this.queryParams.cCover);
+            this.form.recommendTechnician = this.recommendTechnician.join(", ");
             this.form.cDetail = this.queryParams.cDetail;
-            this.form.cCover = this.queryParams.cCover
+            this.form.cCover = this.queryParams.cCover;
             addXiangmu(this.form).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
@@ -558,4 +633,7 @@ export default {
   /* max-width: 100% !important; */
   width: 100% !important;
 }
+.el-select {
+  width: 100%;
+}
 </style>

+ 377 - 295
src/views/record/index.vue

@@ -1,315 +1,397 @@
 <template>
-    <div class="app-container">
-      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
+      <el-form-item label="手机号" prop="cPhone">
+        <el-input
+          v-model="queryParams.cPhone"
+          placeholder="请输入手机号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="姓名" prop="cName">
+        <el-input
+          v-model="queryParams.cName"
+          placeholder="请输入姓名"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+      </el-form-item>
+    </el-form>
+    <el-table
+      v-loading="loading"
+      :data="recordList"
+      @selection-change="handleSelectionChange"
+    >
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
+      <!-- <el-table-column label="${comment}" align="center" prop="cId" /> -->
+      <el-table-column label="提现单号" align="center" prop="cashNo" />
+      <el-table-column label="提现金额" align="center" prop="dPrice" />
+      <el-table-column label="开户行" align="center" prop="openingBank" />
+      <el-table-column label="银行账户" align="center" prop="bankAccount" />
+      <el-table-column label="手机号" align="center" prop="cPhone" />
+      <el-table-column label="姓名" align="center" prop="cName" />
+      <!-- <el-table-column label="提现图片" align="center" prop="cImage" width="100">
+          <template slot-scope="scope">
+            <image-preview :src="scope.row.cImage" :width="50" :height="50"/>
+          </template>
+        </el-table-column> -->
+
+      <el-table-column
+        label="是否审核"
+        align="center"
+        prop="nStatus"
+        width="100"
+      >
+        <template slot-scope="scope">
+          <span>{{
+            scope.row.nStatus === 1
+              ? "审核通过"
+              : scope.row.nStatus === 2
+              ? "驳回"
+              : "审核中"
+          }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="创建时间"
+        align="center"
+        prop="dtCreateTime"
+        width="180"
+      >
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.dtCreateTime, "{y}-{m}-{d}") }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            :disabled="scope.row.nStatus === 1 || scope.row.nStatus === 2"
+            @click="auditIn(scope.row)"
+            >审核</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            :disabled="scope.row.nStatus === 1 || scope.row.nStatus === 2"
+            @click="turn(scope.row)"
+            >驳回</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <el-pagination
+      v-show="total > 0"
+      background
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page="queryParams.current"
+      :page-size="queryParams.size"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="total"
+    >
+    </el-pagination>
+    <!-- 添加或修改提现对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="提现用户" prop="cOpenId">
+          <el-input v-model="form.cOpenId" placeholder="请输入提现用户" />
+        </el-form-item>
+        <el-form-item label="提现金额" prop="dPrice">
+          <el-input v-model="form.dPrice" placeholder="请输入提现金额" />
+        </el-form-item>
+        <el-form-item label="提现时间" prop="cTime">
+          <el-input v-model="form.cTime" placeholder="请输入提现时间" />
+        </el-form-item>
         <el-form-item label="手机号" prop="cPhone">
-          <el-input
-            v-model="queryParams.cPhone"
-            placeholder="请输入手机号"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
+          <el-input v-model="form.cPhone" placeholder="请输入手机号" />
         </el-form-item>
         <el-form-item label="姓名" prop="cName">
-          <el-input
-            v-model="queryParams.cName"
-            placeholder="请输入姓名"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
+          <el-input v-model="form.cName" placeholder="请输入姓名" />
         </el-form-item>
-        <el-form-item>
-          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-form-item label="提现图片" prop="cImage">
+          <image-upload v-model="form.cImage" />
+        </el-form-item>
+        <el-form-item label="创建时间" prop="dtCreateTime">
+          <el-date-picker
+            clearable
+            v-model="form.dtCreateTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择创建时间"
+          >
+          </el-date-picker>
         </el-form-item>
       </el-form>
-      <el-table v-loading="loading" :data="recordList" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" align="center" />
-        <!-- <el-table-column label="${comment}" align="center" prop="cId" /> -->
-        <el-table-column label="提现单号" align="center" prop="cashNo" />
-        <el-table-column label="提现金额" align="center" prop="dPrice" />
-        <el-table-column label="开户行" align="center" prop="openingBank" />
-        <el-table-column label="银行账户" align="center" prop="bankAccount" />
-        <el-table-column label="手机号" align="center" prop="cPhone" />
-        <el-table-column label="姓名" align="center" prop="cName" />
-        <!-- <el-table-column label="提现图片" align="center" prop="cImage" width="100">
-          <template slot-scope="scope">
-            <image-preview :src="scope.row.cImage" :width="50" :height="50"/>
-          </template>
-        </el-table-column> -->
-        
-        <el-table-column label="是否审核" align="center" prop="nStatus" width="100">
-          <template slot-scope="scope">
-            <span>{{ scope.row.nStatus ===1?'审核通过' : scope.row.nStatus ===2?'驳回':'审核中'}}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="创建时间" align="center" prop="dtCreateTime" width="180">
-          <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.dtCreateTime, '{y}-{m}-{d}') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-          <template slot-scope="scope">
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-edit"
-              :disabled="scope.row.nStatus ===1 || scope.row.nStatus ===2"
-              @click="auditIn(scope.row)"
-            >审核</el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-delete"
-              :disabled="scope.row.nStatus ===1 || scope.row.nStatus ===2"
-              @click="turn(scope.row)"
-            >驳回</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      
-      <el-pagination
-        v-show="total>0"
-        background
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="queryParams.current"
-        :page-size="queryParams.size"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="total">
-      </el-pagination>
-      <!-- 添加或修改提现对话框 -->
-      <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-          <el-form-item label="提现用户" prop="cOpenId">
-            <el-input v-model="form.cOpenId" placeholder="请输入提现用户" />
-          </el-form-item>
-          <el-form-item label="提现金额" prop="dPrice">
-            <el-input v-model="form.dPrice" placeholder="请输入提现金额" />
-          </el-form-item>
-          <el-form-item label="提现时间" prop="cTime">
-            <el-input v-model="form.cTime" placeholder="请输入提现时间" />
-          </el-form-item>
-          <el-form-item label="手机号" prop="cPhone">
-            <el-input v-model="form.cPhone" placeholder="请输入手机号" />
-          </el-form-item>
-          <el-form-item label="姓名" prop="cName">
-            <el-input v-model="form.cName" placeholder="请输入姓名" />
-          </el-form-item>
-          <el-form-item label="提现图片" prop="cImage">
-            <image-upload v-model="form.cImage"/>
-          </el-form-item>
-          <el-form-item label="创建时间" prop="dtCreateTime">
-            <el-date-picker clearable
-              v-model="form.dtCreateTime"
-              type="date"
-              value-format="yyyy-MM-dd"
-              placeholder="请选择创建时间">
-            </el-date-picker>
-          </el-form-item>
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submitForm">确 定</el-button>
-          <el-button @click="cancel">取 消</el-button>
-        </div>
-      </el-dialog>
-    </div>
-  </template>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
   
   <script>
-  import { listRecord, getRecord, delRecord, addRecord, updateRecord,auditRecord } from "@/api/system/record";
-  
-  export default {
-    name: "Record",
-    data() {
-      return {
-        // 遮罩层
-        loading: true,
-        // 选中数组
-        ids: [],
-        // 非单个禁用
-        single: true,
-        // 非多个禁用
-        multiple: true,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 提现表格数据
-        recordList: [],
-        // 弹出层标题
-        title: "",
-        // 是否显示弹出层
-        open: false,
-        // 查询参数
-        queryParams: {
-          current: 1,
-          size: 10,
-          cOpenId: null,
-          dPrice: null,
-          cTime: null,
-          cPhone: '',
-          cName: null,
-          cImage: null,
-          nStatus: null,
-          dtCreateTime: null
-        },
-        // 表单参数
-        form: {},
-        // 表单校验
-        rules: {
-        }
-      };
-    },
-    created() {
-      this.getList();
-    },
-    methods: {
-      auditIn(e){
-        console.log(e.cId,"wwwwwwwwww")
-        var ids= {
-          cId:e.cId,
-          nStatus:1
-        }
-        auditRecord(ids).then(res =>{
-          // console.log(res.data,"eeeeeeeeeeeeeeeeeeee")
-          if(res.code == 200){
-            this.$modal.msgSuccess("审核成功");
-            this.getList();
-          }else{
-            this.$modal.msgError(res.data.msg);
-          }
-          
-        })
+import {
+  listRecord,
+  getRecord,
+  delRecord,
+  addRecord,
+  updateRecord,
+  auditRecord,
+} from "@/api/system/record";
+
+export default {
+  name: "Record",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 提现表格数据
+      recordList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        current: 1,
+        size: 10,
+        cOpenId: null,
+        dPrice: null,
+        cTime: null,
+        cPhone: "",
+        cName: null,
+        cImage: null,
+        nStatus: null,
+        dtCreateTime: null,
       },
-      turn(e){
-        var ids= {
-          cId:e.cId,
-          nStatus:2
-        }
-         auditRecord(ids).then(res =>{
-          // console.log(res.data,"eeeeeeeeeeeeeeeeeeee")
-          if(res.code == 200){
-            this.$modal.msgSuccess("驳回成功");
-            this.getList();
-          }else{
-            this.$modal.msgError(res.data.msg);
-          }
-          
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {},
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    auditIn(e) {
+      var ids = {
+        cId: e.cId,
+        nStatus: 1,
+      };
+      this.$confirm("确定通过单号为" + e.cashNo + "的审核?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          auditRecord(ids).then((res) => {
+            // console.log(res.data,"eeeeeeeeeeeeeeeeeeee")
+            if (res.code == 200) {
+              this.$modal.msgSuccess("审核成功");
+              this.getList();
+            } else {
+              this.$modal.msgError(res.data.msg);
+            }
+          });
         })
-      },
-      handleSizeChange(val){
-            // console.log(val,"handleSizeChange")
-            this.queryParams.size = val
-            this.getList()
-        },
-        handleCurrentChange(val){
-            this.queryParams.current = val
-            this.getList()
-            // console.log(val,"val")
-        },
-      /** 查询提现列表 */
-      getList() {
-        this.loading = true;
-        listRecord(this.queryParams).then(response => {
-          this.recordList = response.data.records;
-          this.total = response.data.total;
-          this.loading = false;
-        });
-      },
-      // 取消按钮
-      cancel() {
-        this.open = false;
-        this.reset();
-      },
-      // 表单重置
-      reset() {
-        this.form = {
-          cId: null,
-          cOpenId: null,
-          dPrice: null,
-          cTime: null,
-          cPhone: null,
-          cName: null,
-          cImage: null,
-          nStatus: null,
-          dtCreateTime: null
-        };
-        this.resetForm("form");
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.pageNum = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.resetForm("queryForm");
-        this.handleQuery();
-      },
-      // 多选框选中数据
-      handleSelectionChange(selection) {
-        this.ids = selection.map(item => item.cId)
-        this.single = selection.length!==1
-        this.multiple = !selection.length
-      },
-      /** 新增按钮操作 */
-      handleAdd() {
-        this.reset();
-        this.open = true;
-        this.title = "添加提现";
-      },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
-        this.reset();
-        const cId = row.cId || this.ids
-        getRecord(cId).then(response => {
-          this.form = response.data;
-          this.open = true;
-          this.title = "修改提现";
+        .catch((e) => {
+          this.$message({
+            type: "info",
+            message: "已取消",
+          });
         });
-      },
-      /** 提交按钮 */
-      submitForm() {
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            if (this.form.cId != null) {
-              updateRecord(this.form).then(response => {
-                this.$modal.msgSuccess("修改成功");
-                this.open = false;
-                this.getList();
-              });
+    },
+    turn(e) {
+      
+      
+      var ids = {
+        cId: e.cId,
+        nStatus: 2,
+      };
+      this.$confirm("确定驳回单号为" + e.cashNo + "的审核?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          auditRecord(ids).then((res) => {
+            if (res.code == 200) {
+              this.$modal.msgSuccess("驳回成功");
+              this.getList();
             } else {
-              addRecord(this.form).then(response => {
-                this.$modal.msgSuccess("新增成功");
-                this.open = false;
-                this.getList();
-              });
+              this.$modal.msgError(res.data.msg);
             }
-          }
+          });
+        })
+        .catch((e) => {
+          this.$message({
+            type: "info",
+            message: "已取消",
+          });
         });
-      },
-      /** 删除按钮操作 */
-      handleDelete(row) {
-        const cIds = row.cId || this.ids;
-        this.$modal.confirm('是否确认删除提现编号为"' + cIds + '"的数据项?').then(function() {
+    },
+    handleSizeChange(val) {
+      // console.log(val,"handleSizeChange")
+      this.queryParams.size = val;
+      this.getList();
+    },
+    handleCurrentChange(val) {
+      this.queryParams.current = val;
+      this.getList();
+      // console.log(val,"val")
+    },
+    /** 查询提现列表 */
+    getList() {
+      this.loading = true;
+      listRecord(this.queryParams).then((response) => {
+        this.recordList = response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        cId: null,
+        cOpenId: null,
+        dPrice: null,
+        cTime: null,
+        cPhone: null,
+        cName: null,
+        cImage: null,
+        nStatus: null,
+        dtCreateTime: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.cId);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加提现";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const cId = row.cId || this.ids;
+      getRecord(cId).then((response) => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改提现";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.cId != null) {
+            updateRecord(this.form).then((response) => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRecord(this.form).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const cIds = row.cId || this.ids;
+      this.$modal
+        .confirm('是否确认删除提现编号为"' + cIds + '"的数据项?')
+        .then(function () {
           return delRecord(cIds);
-        }).then(() => {
+        })
+        .then(() => {
           this.getList();
           this.$modal.msgSuccess("删除成功");
-        }).catch(() => {});
-      },
-      /** 导出按钮操作 */
-      handleExport() {
-        this.download('system/record/export', {
-          ...this.queryParams
-        }, `record_${new Date().getTime()}.xlsx`)
-      }
-    }
-  };
-  </script>
+        })
+        .catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download(
+        "system/record/export",
+        {
+          ...this.queryParams,
+        },
+        `record_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
+};
+</script>
   <style scoped>
-   .el-pagination{
-      float: right;
-      padding: 30px 0;
-    }
+.el-pagination {
+  float: right;
+  padding: 30px 0;
+}
 </style>

+ 2 - 4
src/views/technician/check/check.vue

@@ -122,7 +122,7 @@
         </el-table-column> -->
         <el-table-column label="审核状态" align="center" prop="nStatus">
             <template slot-scope="scope">
-            <span>{{ scope.row.nTong ===0 ? '待审核' :'已退回' }}</span>
+            <span>{{ scope.row.nTong === 0 ? '待审核' :scope.row.nTong === 3 ? '已拉黑' :'已退回' }}</span>
           </template>
         </el-table-column>
         <!-- <el-table-column label="注册时间" align="center" prop="cTime" /> -->
@@ -453,6 +453,7 @@
           {value:0,label:'待审核'},
         //   {value:1,label:'已通过'},
           {value:2,label:'已退回'},
+          {value:3,label:'已拉黑'},
         ],
         serviceState:[
           {value:0,label:'可服务'},
@@ -610,7 +611,6 @@
             upload(formData).then(response => {
                 this.queryParams.cPortrait = response.fileName
                 this.form.cPortrait = process.env.VUE_APP_BASE_API + response.fileName
-                console.log(response,"图片上传成功!")
             })
         },
         beforeAvatarUpload(file) {
@@ -752,7 +752,6 @@
               this.form.cPortrait = this.queryParams.cPortrait
               this.form.cImgList = this.updataImg11
               this.form.cSfzImg = this.updataImg22
-              console.log(this.form);
               if(this.form.cName == ''){
                 this.$message.error('技师姓名不能为空');
                 return
@@ -767,7 +766,6 @@
                 return
               }
               updateJs(this.form).then(response => {
-                console.log('1111111');
                 this.$modal.msgSuccess("修改成功");
                 this.open = false;
                 this.imgList = []

+ 13 - 13
src/views/technician/details/details.vue

@@ -110,7 +110,7 @@
           :show-file-list="false"
         >
           <img
-            v-if="jsInfos.businessLicense"
+            v-if="jsInfos.businessLicense.length>51"
             :src="jsInfos.businessLicense"
             class="avatar"
           />
@@ -125,7 +125,7 @@
           :before-upload="beforeNocrimeUpload"
           :show-file-list="false"
         >
-          <img v-if="jsInfos.noCrime" :src="jsInfos.noCrime" class="avatar" />
+          <img v-if="jsInfos.noCrime.length>51" :src="jsInfos.noCrime" class="avatar" />
           <i v-else class="el-icon-plus avatar-uploader-icon"></i>
         </el-upload>
       </el-form-item>
@@ -138,7 +138,7 @@
           :show-file-list="false"
         >
           <img
-            v-if="jsInfos.healthCertificate"
+            v-if="jsInfos.healthCertificate.length>51"
             :src="jsInfos.healthCertificate"
             class="avatar"
           />
@@ -154,7 +154,7 @@
           :show-file-list="false"
         >
           <img
-            v-if="jsInfos.certification"
+            v-if="jsInfos.certification.length>51"
             :src="jsInfos.certification"
             class="avatar"
           />
@@ -231,10 +231,8 @@
           >上 岗</el-button
         >
         <el-button type="primary" @click="work" v-else>下 岗</el-button>
-        <el-button type="primary" @click="auditJs(jsInfos.id)">审 核</el-button>
-        <el-button type="primary" @click="returnJs(jsInfos.id)"
-          >退 回</el-button
-        >
+        <el-button type="primary" @click="auditJs(jsInfos.id)" v-if="jsInfos.nTong == 0">审 核</el-button>
+        <el-button type="primary" @click="returnJs(jsInfos.id)"  v-if="jsInfos.nTong == 0">退 回</el-button>
         <el-button type="primary" @click="submitForm">修 改</el-button>
         <el-button type="primary" @click="blacklist" v-if="jsInfos.nTong == 3"
           >恢 复</el-button
@@ -258,6 +256,7 @@
             min="0"
             v-model="complainForm.nStar"
             autocomplete="off"
+            oninput="if(value<=0){value=null} if(value>5){value=5} if(value.length > 1){value = value.slice(0, 1)}"
           ></el-input>
         </el-form-item>
         <el-form-item label="内容:">
@@ -333,7 +332,6 @@ export default {
   },
   methods: {
     uploadAddressData(payload){
-      console.log(payload);
       this.jsInfos.latitude =payload.latitude
       this.jsInfos.longitude =payload.longitude
       this.jsInfos.address =payload.addressName
@@ -363,6 +361,8 @@ export default {
       let cOpenId = { id: this.$route.query.id };
       getJs(cOpenId).then((response) => {
         this.jsInfos = response.data;
+        this.addr.lat = response.data.latitude
+        this.addr.lng = response.data.longitude
         this.uploadInfos.projects = [];
         this.uploadInfos.cPortrait = response.data.cPortrait;
         this.uploadInfos.businessLicense = response.data.businessLicense;
@@ -407,6 +407,7 @@ export default {
             element = process.env.VUE_APP_BASE_API + element;
             imgs.push(element);
           });
+        
         } else {
           imgs = [];
         }
@@ -556,7 +557,6 @@ export default {
       }
     },
     addComplaintShow(id,jsInfos) {
-      console.log(jsInfos);
       this.complainForm.name = jsInfos.cName
       this.complainForm.cId = jsInfos.cId
       this.dialogFormVisible = true;
@@ -739,9 +739,9 @@ export default {
           } else {
             this.$modal.msgSuccess("该技师已操作");
           }
-          this.$message({
-            type: "success",
-          });
+          // this.$message({
+          //   type: "success",
+          // });
         })
         .catch(() => {
           this.$message({

+ 5 - 8
src/views/technician/technician/index.vue

@@ -118,17 +118,17 @@
             v-hasPermi="['system:comment:remove']"
           >删除</el-button>
         </el-col> -->
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           plain
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
-          v-hasPermi="['system:comment:export']"
+          v-hasPermi="['system:js:export']"
           >导出</el-button
         >
-      </el-col>
+      </el-col> -->
       <right-toolbar
         :showSearch.sync="showSearch"
         @queryTable="getList"
@@ -796,7 +796,6 @@ export default {
       upload(formData).then((response) => {
         this.queryParams.cPortrait = response.fileName;
         this.form.cPortrait = process.env.VUE_APP_BASE_API + response.fileName;
-        console.log(response, "图片上传成功!");
       });
     },
     beforeAvatarUpload(file) {
@@ -825,7 +824,6 @@ export default {
         element = process.env.VUE_APP_BASE_API + element;
         this.imgsList.push(element);
       });
-      console.log(this.imgsList, "this.imgsList");
     },
     /** 查询技师列表 */
     getList() {
@@ -881,12 +879,13 @@ export default {
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
+      // this.queryParams.pageNum = 1;
       this.getList();
     },
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm("queryForm");
+      this.queryParams.cPhone = ''
       // this.reset()
       this.handleQuery();
     },
@@ -943,7 +942,6 @@ export default {
             this.form.cPortrait = this.queryParams.cPortrait;
             this.form.cImgList = this.updataImg11;
             this.form.cSfzImg = this.updataImg22;
-            console.log(this.form);
             if (this.form.cName == "") {
               this.$message.error("技师姓名不能为空");
               return;
@@ -958,7 +956,6 @@ export default {
               return;
             }
             updateJs(this.form).then((response) => {
-              console.log("1111111");
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.imgList = [];

+ 122 - 105
src/views/technician/technicianData/technicianData.vue

@@ -1,49 +1,62 @@
 <template>
   <div class="data_box">
-
     <div class="block">
-
-
-  
-  <el-form
-      :model="queryParams"
-      ref="queryForm"
-      size="small"
-      :inline="true"
-      v-show="showSearch"
-      label-width="68px"
-    >
-
-    <el-form-item label="统计日期" prop="value2">
-      <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至"
-        start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" @change="getList"
-        value-format="yyyy-MM-dd">
-      </el-date-picker>
-    </el-form-item>
-      <el-form-item label="技师姓名" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入技师姓名"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button
-          type="primary"
-          icon="el-icon-search"
+      <el-form
+        :model="queryParams"
+        ref="queryForm"
+        size="small"
+        :inline="true"
+        v-show="showSearch"
+        label-width="68px"
+      >
+        <el-form-item label="统计日期" prop="value2">
+          <el-date-picker
+            v-model="value2"
+            type="daterange"
+            align="right"
+            unlink-panels
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            :picker-options="pickerOptions"
+            @change="getList"
+            value-format="yyyy-MM-dd"
+            :clearable = "false"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="技师姓名" prop="name">
+          <el-input
+            v-model="queryParams.name"
+            placeholder="请输入技师姓名"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
           size="mini"
-          @click="handleQuery"
-          >搜索</el-button
+          @click="handleExport"
+          v-hasPermi="['system:js:export']"
+          >导出</el-button
         >
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-          >重置</el-button
-        >
-      </el-form-item>
-    </el-form>
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            size="mini"
+            @click="handleQuery"
+            >搜索</el-button
+          >
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+            >重置</el-button
+          >
+        </el-form-item>
+      </el-form>
     </div>
 
-
     <el-table :data="tableData" style="width: 100%">
       <!-- <el-table-column prop="date" label="日期" width="180">
       </el-table-column>
@@ -65,61 +78,61 @@
       <!-- <el-table-column label="部门id" align="center" prop="deptId" /> -->
       <el-table-column label="城市" align="center" prop="deptName" />
     </el-table>
-    <el-pagination 
-    v-show="total > 0"
-    @size-change="handleSizeChange" 
-    @current-change="handleCurrentChange" 
-    :current-page="queryParams.current"
-    :page-sizes="[10, 20, 30, 40, 50, 100]" 
-    :page-size="queryParams.size" 
-    layout="total, sizes, prev, pager, next, jumper" 
-    :total="total">
+    <el-pagination
+      v-show="total > 0"
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+      :current-page="queryParams.current"
+      :page-sizes="[10, 20, 30, 40, 50, 100]"
+      :page-size="queryParams.size"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="total"
+    >
     </el-pagination>
   </div>
-
-
-
-
 </template>
 
 <script>
 import { getJsData } from "@/api/system/js";
 import { number } from "echarts";
 components: {
-  number
+  number;
 }
 export default {
   data() {
-
     return {
       pickerOptions: {
-        shortcuts: [{
-          text: '最近一周',
-          onClick(picker) {
-            const end = new Date();
-            const start = new Date();
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-            picker.$emit('pick', [start, end]);
-          }
-        }, {
-          text: '最近一个月',
-          onClick(picker) {
-            const end = new Date();
-            const start = new Date();
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-            picker.$emit('pick', [start, end]);
-          }
-        }, {
-          text: '最近三个月',
-          onClick(picker) {
-            const end = new Date();
-            const start = new Date();
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-            picker.$emit('pick', [start, end]);
-          }
-        }]
+        shortcuts: [
+          {
+            text: "最近一周",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近一个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "最近三个月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
       },
-      value2: '',
+      value2: "",
       tableData: [],
       // 总条数
       total: 0,
@@ -132,57 +145,61 @@ export default {
         current: 1,
         name: null,
         size: 10,
-        
-      }
+      },
     };
   },
   methods: {
+    handleExport(){
+      this.download(
+        "/tJsDay/export",
+        {
+          ...this.queryParams,
+        },
+        `comment_${new Date().getTime()}.xlsx`
+      );
+    },
     //获取技师数据
     getList() {
-      this.queryParams.startTime = this.value2[0]
-      this.queryParams.endTime = this.value2[1]
+      this.queryParams.startTime = this.value2[0];
+      this.queryParams.endTime = this.value2[1];
       // console.log(this.value2)
-      console.log(this.queryParams)
       getJsData(this.queryParams).then((res) => {
-        console.log("111111111111111", this.queryParams)
         this.tableData = res.data.records;
         this.total = res.data.total;
-        console.log(res);
       });
     },
 
     handleSizeChange(val) {
-    // console.log(val,"handleSizeChange")
-    this.queryParams.size = val;
-    this.getList();
-  },
-  handleCurrentChange(val) {
+      // console.log(val,"handleSizeChange")
+      this.queryParams.size = val;
+      this.getList();
+    },
+    handleCurrentChange(val) {
       this.queryParams.current = val;
       this.getList();
       // console.log(val,"val")
     },
-    handleQuery(val){
+    handleQuery(val) {
       // this.queryParams.name = val;
       this.getList();
       // console.log(val,"val")
     },
     resetQuery() {
-      this.reset()
-      this.value2 = ''
+      this.reset();
+      this.value2 = "";
       this.getList();
     },
-    reset(){
+    reset() {
       this.queryParams = {
         startTime: null,
         endTime: null,
         current: 1,
         name: null,
         size: 10,
-      }
-    }
+      };
+    },
   },
 
- 
   mounted() {
     this.getList();
   },
@@ -199,14 +216,14 @@ export default {
   float: right;
   padding: 30px 0;
 }
-.demonstration{
-  margin-right: 30px ;
+.demonstration {
+  margin-right: 30px;
 }
-.block{
-  margin-bottom: 30px ;
+.block {
+  // margin-bottom: 30px ;
 }
-.el-input{
+.el-input {
   width: 200px;
-  margin-left: 30px;
+  // margin-left: 30px;
 }
 </style>