dct 2 miesięcy temu
rodzic
commit
55bc71d053

+ 13 - 5
config/index.js

@@ -44,19 +44,27 @@ module.exports = {
     proxyTable: {
       '/tenant': {
         // target: 'https://pdev.cleartv.cn/cticketmember/',
-        // target: 'http://114.104.160.118:18001/', // prod
-        target: 'http://114.104.160.233:28002/',
+        target: 'http://114.104.160.118:18001/', // prod
+        // target: 'http://114.104.160.233:28002/',
         // target: 'https://oriented-quail-refined.ngrok-free.app/',
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/api/, '')
       },
       '/admin': {
         // target: 'https://pdev.cleartv.cn/cticketmember/',
-        // target: 'http://114.104.160.118:18001/', // prod
-        target: 'http://114.104.160.233:28001/',
+        target: 'http://114.104.160.118:18001/', // prod
+        // target: 'http://114.104.160.233:28001/',
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/api/, '')
-      }
+      },
+      '/external': {
+        // target: 'https://pdev.cleartv.cn/cticketmember/',
+        target: 'http://114.104.160.118:18001/', // prod
+        // target: 'http://114.104.160.233:28002/',
+        // target: 'https://oriented-quail-refined.ngrok-free.app/',
+        changeOrigin: true,
+        rewrite: (path) => path.replace(/^\/api/, '')
+      },
     }
   },
 

+ 6 - 0
src/api/login.js

@@ -1,4 +1,5 @@
 import http from '@/utils/request'
+import axios from 'axios'
 // import md5 from 'md5'
 
 // 登录
@@ -25,3 +26,8 @@ export function authsmsneed (params) {
 export function authsmssend (params) {
   return http.post('/tenant/login/authsmssend', { data: params })
 }
+
+// 获取图形验证码
+export function getCaptcha () {
+  return axios.get('/external/util/captcha')
+}

+ 2 - 2
src/api/order.js

@@ -36,9 +36,9 @@ export function getOrderStatistics (params) {
   return http.post('/tenant/statistics/orderSaleStatistics', { data: params })
 }
 
-// 获取销售来源列表
+// 获取分销商名称列表
 export function getOtaSourceList (params) {
-  return http.post('/tenant/otaSource/getOtaPublicSourceList', { data: params })
+  return http.post('/tenant/otaSource', { data: params })
 }
 
 export function getOrderCancelStatistics (params) {

+ 1 - 1
src/views/goodsCenter/otaList.vue

@@ -55,7 +55,7 @@
         </el-table-column>
         <el-table-column
           label="分销商ID"
-          prop="id"
+          prop="otaSourceId"
           min-width="120">
         </el-table-column>
         <el-table-column

+ 1 - 0
src/views/goodsCenter/priceList/EditDialog.vue

@@ -14,6 +14,7 @@
         label="票种">
         <el-select
           v-model="form.ticketTypeId"
+          :disabled="dialogType === 'edit'"
           filterable>
           <el-option
             v-for="item in ticketTypeList"

+ 54 - 6
src/views/login/index.vue

@@ -63,6 +63,24 @@
                 placeholder="密码"
               />
             </el-form-item>
+            <el-form-item prop="captcha">
+              <span class="svg-container">
+                <svg-icon icon-class="password"/>
+              </span>
+              <el-input
+                name="captcha"
+                v-model="loginForm.captchaCode"
+                @keyup.enter.native="handleLogin"
+                placeholder="验证码"
+                style="width: 200px !important;"
+              />
+              <img
+                :src="captchaUrl"
+                @click="refreshCaptcha"
+                class="captcha-img"
+                alt="验证码"
+              >
+            </el-form-item>
             <el-form-item
               prop="authcode"
               v-if="showCode"
@@ -121,6 +139,7 @@
 
 <script>
 // import drawCanvas from './canvas'
+import { getCaptcha } from '@/api/login'
 import { encrypt } from '@/utils'
 
 const blocks = [
@@ -153,19 +172,32 @@ export default {
       loginForm: {
         projectName: project,
         userName,
-        password
+        password,
+        captchaId: '',
+        captchaCode: ''
       },
       loginRules: {
         projectName: [{required: true, trigger: 'blur', message: '请输入项目名'}],
         userName: [{required: true, trigger: 'blur', message: '请输入用户名'}],
-        password: [{required: true, trigger: 'blur', message: '请输入密码'}]
+        password: [{required: true, trigger: 'blur', message: '请输入密码'}],
+        captchaCode: [{required: true, trigger: 'blur', message: '请输入验证码'}]
       },
       loading: false,
       pwdType: 'password',
+      captchaUrl: '',
       count: 31
     }
   },
   methods: {
+    refreshCaptcha () {
+      getCaptcha()
+        .then(res => {
+          this.loginForm.captchaId = res.headers['captcha-id'] || ''
+          this.captchaUrl = res.data
+        }).catch(() => {
+          this.$message.error('获取验证码失败,请重试')
+        })
+    },
     showPwd () {
       if (this.pwdType === 'password') {
         this.pwdType = ''
@@ -174,11 +206,13 @@ export default {
       }
     },
     handleLogin () {
-      const { projectName, userName, password } = this.loginForm
+      const { projectName, userName, password, captchaCode, captchaId } = this.loginForm
       let params = {
         projectName: projectName.trim(),
         userName: userName.trim(),
-        password: encrypt(password)
+        password: encrypt(password),
+        captchaCode: captchaCode.trim(),
+        captchaId: captchaId.trim()
       }
 
       if (this.savePwd) {
@@ -199,6 +233,7 @@ export default {
             this.$router.push('/index/dashboard')
           }).catch(() => {
             this.loading = false
+            this.refreshCaptcha()
           })
         } else {
           console.log('error submit!!')
@@ -213,6 +248,7 @@ export default {
     this.loginForm.projectName = window.localStorage.getItem('projectName') || ''
     this.loginForm.password = window.localStorage.getItem('password') || ''
     this.savePwd = !!this.loginForm.password
+    this.refreshCaptcha()
   },
   beforeDestroy () {
     this.stopCanvasAnimate = true
@@ -227,6 +263,7 @@ $light_gray: #eee;
 /* reset element-ui css */
 .login-container {
   .el-form-item__content {
+    display: flex;
     line-height: 36px;
     color: #454545;
     border: 1px solid #C3D5E8;
@@ -279,8 +316,8 @@ $light_gray: #eee;
       position: absolute;
       z-index: 20;
       top: 50%;
-      margin-top: -300px;
-      height: 600px;
+      margin-top: -280px;
+      height: 620px;
       left: calc(50% - 480px);
       display: flex;
       background: #fff;
@@ -372,6 +409,17 @@ $light_gray: #eee;
       margin: 4px 0;
       border-right: 1px solid #C3D5E8;
     }
+
+    .captcha-img {
+      width: 100px;
+      height: 36px;
+      margin-top: 2px;
+      margin-left: 20px;
+      vertical-align: middle;
+      cursor: pointer;
+      border: 1px solid #C3D5E8;
+      border-radius: 4px;
+    }
     .show-pwd {
       position: absolute;  top: 7px;  right: 10px;  font-size: 16px;  color: $dark_gray;  cursor: pointer;  user-select: none;
     }

+ 2 - 2
src/views/queryReport/cancelReport.vue

@@ -42,7 +42,7 @@
           </el-select>
         </el-form-item>
         <el-form-item
-          label="销售来源"
+          label="分销商名称"
           prop="otaSourceNameList">
           <el-select
             filterable
@@ -243,7 +243,7 @@ export default {
         pageNum: 1,
         pageSize: -1
       }).then(res => {
-        this.otaSourceList = res.data || []
+        this.otaSourceList = res.data.records || []
       })
     },
     getCancelOrderList (e, goFirst) {

+ 0 - 4
src/views/queryReport/checkAndPrintReport.vue

@@ -34,10 +34,6 @@
             clearable
             placeholder="请选择"
             filterable>
-            <el-option
-              label="全部"
-              value="">
-            </el-option>
             <el-option
               v-for="item in otaList"
               :key="item.id"

+ 4 - 3
src/views/queryReport/orderList.vue

@@ -61,9 +61,9 @@
         </el-form-item>
         <el-form-item
           label="分销商名称"
-          prop="keyWords9">
+          prop="otaSourceNameList">
           <el-select
-            v-model="form.keyWords9"
+            v-model="form.otaSourceNameList"
             multiple
             clearable
             placeholder="请选择"
@@ -523,6 +523,7 @@ export default {
         searchKeywords: '', // 关键字搜索
         createTimeBegin: moment().subtract(7, 'days').startOf('day'),
         createTimeEnd: moment().endOf('day'),
+        otaSourceNameList: [], // 分销商名称
         partnerOrderNo: '', // ota订单号
         visitorName: '', // 预订姓名
         visitorPhone: '', // 预订人手机
@@ -593,7 +594,7 @@ export default {
         pageNum: 1,
         pageSize: -1
       }).then(res => {
-        this.otaSourceList = res.data || []
+        this.otaSourceList = res.data.records || []
       })
     },
     getOrderList (e, goFirst) {

+ 2 - 2
src/views/queryReport/salesReport.vue

@@ -42,7 +42,7 @@
           </el-select>
         </el-form-item>
         <el-form-item
-          label="销售来源"
+          label="分销商名称"
           prop="otaSourceNameList">
           <el-select
             filterable
@@ -255,7 +255,7 @@ export default {
         pageNum: 1,
         pageSize: -1
       }).then(res => {
-        this.otaSourceList = res.data || []
+        this.otaSourceList = res.data.records || []
       })
     },
     getOrderStatistics (e, goFirst) {