lex-xin 3 년 전
부모
커밋
c6765041b0

+ 1 - 0
package.json

@@ -31,6 +31,7 @@
     "js-cookie": "2.2.0",
     "linq": "^3.2.2",
     "lodash": "^4.17.20",
+    "mammoth": "^1.4.19",
     "moment": "^2.29.1",
     "node-sass": "^4.14.1",
     "normalize.css": "7.0.0",

+ 14 - 3
src/components/singe-file-upload/index.vue

@@ -1,4 +1,5 @@
 <template>
+    <!-- :before-upload="beforeUpload" -->
   <el-upload
     action="/api-web/uploadFile"
     :headers="headers"
@@ -8,7 +9,7 @@
     :on-error="error"
     :file-list="filelist"
     :accept="accept">
-    <el-button  type="primary" plain >点击上传</el-button>
+    <el-button  type="primary" plain >{{ buttonText }}</el-button>
     <div slot="tip" v-if="tips" class="el-upload__tip">{{tips}}</div>
     <div slot="file" slot-scope="{file}">
       <div style="display: flex; align-items: center;flex: 1 auto;justify-content: space-between;">
@@ -29,6 +30,10 @@ import load from '@/utils/loading'
 export default {
   name: 'singe-file-upload',
   props: {
+    buttonText: {
+      type: String,
+      default: '点击上传',
+    },
     tips: {
       type: String,
       default: ''
@@ -75,10 +80,15 @@ export default {
       this.remove()
       load.endLoading()
     },
-    progress() {
+    // beforeUpload(file) {
+    //   console.log(file)
+
+    //   return false
+    // },
+    progress(file) {
       load.startLoading()
     },
-    success(res) {
+    success(res, file) {
       load.endLoading()
       if (res.code == 200) {
         this.filelist = [{
@@ -87,6 +97,7 @@ export default {
         }]
         this.$emit('update:value', res.data.url)
         this.$emit('input', res.data.url)
+        this.$emit('inputFile', file)
       } else {
         this.remove()
         this.$message.error(res.msg || '上传失败')

+ 10 - 0
src/router/index.js

@@ -115,6 +115,16 @@ export const constantRoutes = [
     component: () => import('@/views/403'),
     hidden: true
   },
+  {
+    path: '/noPermission',
+    component: () => import('@/views/noPermission'),
+    hidden: true
+  },
+  {
+    path: '/systemMaintain',
+    component: () => import('@/views/systemMaintain'),
+    hidden: true
+  },
   // { path: '*', redirect: '/404', hidden: true }
 ]
 // export const constantRoutes = [{

+ 239 - 0
src/views/noPermission.vue

@@ -0,0 +1,239 @@
+<template>
+  <div class="wscn-http404-container">
+    <div class="wscn-http404">
+      <div class="pic-404">
+        <img class="pic-404__parent"
+             src="@/assets/404_images/404.png"
+             alt="404">
+        <img class="pic-404__child left"
+             src="@/assets/404_images/404_cloud.png"
+             alt="404">
+        <img class="pic-404__child mid"
+             src="@/assets/404_images/404_cloud.png"
+             alt="404">
+        <img class="pic-404__child right"
+             src="@/assets/404_images/404_cloud.png"
+             alt="404">
+      </div>
+      <div class="bullshit">
+        <div class="bullshit__oops">OOPS!</div>
+        <!-- <div class="bullshit__info">All rights reserved
+          <a style="color:#20a0ff"
+             href="https://wallstreetcn.com"
+             target="_blank"> </a>
+        </div> -->
+        <div class="bullshit__headline">{{ message }}</div>
+        <div class="bullshit__info">请检查您输入的网址是否正确,或者点击链接继续浏览</div>
+        <a href=""
+           class="bullshit__return-home">返回首页</a>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+
+export default {
+  name: 'Page404',
+  computed: {
+    message () {
+      return '很抱歉,你访问的页面不存在'
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.wscn-http404-container {
+  transform: translate(-50%, -50%);
+  position: absolute;
+  top: 40%;
+  left: 50%;
+}
+.wscn-http404 {
+  position: relative;
+  width: 1200px;
+  padding: 0 50px;
+  overflow: hidden;
+  .pic-404 {
+    position: relative;
+    float: left;
+    width: 600px;
+    overflow: hidden;
+    &__parent {
+      width: 100%;
+    }
+    &__child {
+      position: absolute;
+      &.left {
+        width: 80px;
+        top: 17px;
+        left: 220px;
+        opacity: 0;
+        animation-name: cloudLeft;
+        animation-duration: 2s;
+        animation-timing-function: linear;
+        animation-fill-mode: forwards;
+        animation-delay: 1s;
+      }
+      &.mid {
+        width: 46px;
+        top: 10px;
+        left: 420px;
+        opacity: 0;
+        animation-name: cloudMid;
+        animation-duration: 2s;
+        animation-timing-function: linear;
+        animation-fill-mode: forwards;
+        animation-delay: 1.2s;
+      }
+      &.right {
+        width: 62px;
+        top: 100px;
+        left: 500px;
+        opacity: 0;
+        animation-name: cloudRight;
+        animation-duration: 2s;
+        animation-timing-function: linear;
+        animation-fill-mode: forwards;
+        animation-delay: 1s;
+      }
+      @keyframes cloudLeft {
+        0% {
+          top: 17px;
+          left: 220px;
+          opacity: 0;
+        }
+        20% {
+          top: 33px;
+          left: 188px;
+          opacity: 1;
+        }
+        80% {
+          top: 81px;
+          left: 92px;
+          opacity: 1;
+        }
+        100% {
+          top: 97px;
+          left: 60px;
+          opacity: 0;
+        }
+      }
+      @keyframes cloudMid {
+        0% {
+          top: 10px;
+          left: 420px;
+          opacity: 0;
+        }
+        20% {
+          top: 40px;
+          left: 360px;
+          opacity: 1;
+        }
+        70% {
+          top: 130px;
+          left: 180px;
+          opacity: 1;
+        }
+        100% {
+          top: 160px;
+          left: 120px;
+          opacity: 0;
+        }
+      }
+      @keyframes cloudRight {
+        0% {
+          top: 100px;
+          left: 500px;
+          opacity: 0;
+        }
+        20% {
+          top: 120px;
+          left: 460px;
+          opacity: 1;
+        }
+        80% {
+          top: 180px;
+          left: 340px;
+          opacity: 1;
+        }
+        100% {
+          top: 200px;
+          left: 300px;
+          opacity: 0;
+        }
+      }
+    }
+  }
+  .bullshit {
+    position: relative;
+    float: left;
+    width: 300px;
+    padding: 30px 0;
+    overflow: hidden;
+    &__oops {
+      font-size: 32px;
+      font-weight: bold;
+      line-height: 40px;
+      color: #1482f0;
+      opacity: 0;
+      margin-bottom: 20px;
+      animation-name: slideUp;
+      animation-duration: 0.5s;
+      animation-fill-mode: forwards;
+    }
+    &__headline {
+      font-size: 20px;
+      line-height: 24px;
+      color: #222;
+      font-weight: bold;
+      opacity: 0;
+      margin-bottom: 10px;
+      animation-name: slideUp;
+      animation-duration: 0.5s;
+      animation-delay: 0.1s;
+      animation-fill-mode: forwards;
+    }
+    &__info {
+      font-size: 13px;
+      line-height: 21px;
+      color: grey;
+      opacity: 0;
+      margin-bottom: 30px;
+      animation-name: slideUp;
+      animation-duration: 0.5s;
+      animation-delay: 0.2s;
+      animation-fill-mode: forwards;
+    }
+    &__return-home {
+      display: block;
+      float: left;
+      width: 110px;
+      height: 36px;
+      background: #1482f0;
+      border-radius: 100px;
+      text-align: center;
+      color: #ffffff;
+      opacity: 0;
+      font-size: 14px;
+      line-height: 36px;
+      cursor: pointer;
+      animation-name: slideUp;
+      animation-duration: 0.5s;
+      animation-delay: 0.3s;
+      animation-fill-mode: forwards;
+    }
+    @keyframes slideUp {
+      0% {
+        transform: translateY(60px);
+        opacity: 0;
+      }
+      100% {
+        transform: translateY(0);
+        opacity: 1;
+      }
+    }
+  }
+}
+</style>

+ 239 - 0
src/views/systemMaintain.vue

@@ -0,0 +1,239 @@
+<template>
+  <div class="wscn-http404-container">
+    <div class="wscn-http404">
+      <div class="pic-404">
+        <img class="pic-404__parent"
+             src="@/assets/404_images/404.png"
+             alt="404">
+        <img class="pic-404__child left"
+             src="@/assets/404_images/404_cloud.png"
+             alt="404">
+        <img class="pic-404__child mid"
+             src="@/assets/404_images/404_cloud.png"
+             alt="404">
+        <img class="pic-404__child right"
+             src="@/assets/404_images/404_cloud.png"
+             alt="404">
+      </div>
+      <div class="bullshit">
+        <div class="bullshit__oops">OOPS!</div>
+        <!-- <div class="bullshit__info">All rights reserved
+          <a style="color:#20a0ff"
+             href="https://wallstreetcn.com"
+             target="_blank"> </a>
+        </div> -->
+        <div class="bullshit__headline">{{ message }}</div>
+        <div class="bullshit__info">请检查您输入的网址是否正确,或者点击链接继续浏览</div>
+        <a href=""
+           class="bullshit__return-home">返回首页</a>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+
+export default {
+  name: 'Page404',
+  computed: {
+    message () {
+      return '很抱歉,你访问的页面不存在'
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.wscn-http404-container {
+  transform: translate(-50%, -50%);
+  position: absolute;
+  top: 40%;
+  left: 50%;
+}
+.wscn-http404 {
+  position: relative;
+  width: 1200px;
+  padding: 0 50px;
+  overflow: hidden;
+  .pic-404 {
+    position: relative;
+    float: left;
+    width: 600px;
+    overflow: hidden;
+    &__parent {
+      width: 100%;
+    }
+    &__child {
+      position: absolute;
+      &.left {
+        width: 80px;
+        top: 17px;
+        left: 220px;
+        opacity: 0;
+        animation-name: cloudLeft;
+        animation-duration: 2s;
+        animation-timing-function: linear;
+        animation-fill-mode: forwards;
+        animation-delay: 1s;
+      }
+      &.mid {
+        width: 46px;
+        top: 10px;
+        left: 420px;
+        opacity: 0;
+        animation-name: cloudMid;
+        animation-duration: 2s;
+        animation-timing-function: linear;
+        animation-fill-mode: forwards;
+        animation-delay: 1.2s;
+      }
+      &.right {
+        width: 62px;
+        top: 100px;
+        left: 500px;
+        opacity: 0;
+        animation-name: cloudRight;
+        animation-duration: 2s;
+        animation-timing-function: linear;
+        animation-fill-mode: forwards;
+        animation-delay: 1s;
+      }
+      @keyframes cloudLeft {
+        0% {
+          top: 17px;
+          left: 220px;
+          opacity: 0;
+        }
+        20% {
+          top: 33px;
+          left: 188px;
+          opacity: 1;
+        }
+        80% {
+          top: 81px;
+          left: 92px;
+          opacity: 1;
+        }
+        100% {
+          top: 97px;
+          left: 60px;
+          opacity: 0;
+        }
+      }
+      @keyframes cloudMid {
+        0% {
+          top: 10px;
+          left: 420px;
+          opacity: 0;
+        }
+        20% {
+          top: 40px;
+          left: 360px;
+          opacity: 1;
+        }
+        70% {
+          top: 130px;
+          left: 180px;
+          opacity: 1;
+        }
+        100% {
+          top: 160px;
+          left: 120px;
+          opacity: 0;
+        }
+      }
+      @keyframes cloudRight {
+        0% {
+          top: 100px;
+          left: 500px;
+          opacity: 0;
+        }
+        20% {
+          top: 120px;
+          left: 460px;
+          opacity: 1;
+        }
+        80% {
+          top: 180px;
+          left: 340px;
+          opacity: 1;
+        }
+        100% {
+          top: 200px;
+          left: 300px;
+          opacity: 0;
+        }
+      }
+    }
+  }
+  .bullshit {
+    position: relative;
+    float: left;
+    width: 300px;
+    padding: 30px 0;
+    overflow: hidden;
+    &__oops {
+      font-size: 32px;
+      font-weight: bold;
+      line-height: 40px;
+      color: #1482f0;
+      opacity: 0;
+      margin-bottom: 20px;
+      animation-name: slideUp;
+      animation-duration: 0.5s;
+      animation-fill-mode: forwards;
+    }
+    &__headline {
+      font-size: 20px;
+      line-height: 24px;
+      color: #222;
+      font-weight: bold;
+      opacity: 0;
+      margin-bottom: 10px;
+      animation-name: slideUp;
+      animation-duration: 0.5s;
+      animation-delay: 0.1s;
+      animation-fill-mode: forwards;
+    }
+    &__info {
+      font-size: 13px;
+      line-height: 21px;
+      color: grey;
+      opacity: 0;
+      margin-bottom: 30px;
+      animation-name: slideUp;
+      animation-duration: 0.5s;
+      animation-delay: 0.2s;
+      animation-fill-mode: forwards;
+    }
+    &__return-home {
+      display: block;
+      float: left;
+      width: 110px;
+      height: 36px;
+      background: #1482f0;
+      border-radius: 100px;
+      text-align: center;
+      color: #ffffff;
+      opacity: 0;
+      font-size: 14px;
+      line-height: 36px;
+      cursor: pointer;
+      animation-name: slideUp;
+      animation-duration: 0.5s;
+      animation-delay: 0.3s;
+      animation-fill-mode: forwards;
+    }
+    @keyframes slideUp {
+      0% {
+        transform: translateY(60px);
+        opacity: 0;
+      }
+      100% {
+        transform: translateY(0);
+        opacity: 1;
+      }
+    }
+  }
+}
+</style>

+ 139 - 0
src/views/tenantSetting/model/addProtocol.vue

@@ -0,0 +1,139 @@
+<template>
+  <div id="addProtocol">
+    <el-form :model="form" label-width="100px" class="form" ref="form">
+      <el-form-item
+        label="协议名称"
+        prop="name"
+        :rules="[
+          {
+            required: true,
+            message: '请输入协议名称',
+            trigger: 'blur'
+          }
+        ]"
+      >
+        <el-input
+          v-model="form.name"
+          placeholder="请输入协议名称"
+          style="width: 100%"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="协议号"
+        prop="code"
+        :rules="[
+          {
+            required: true,
+            message: '请输入协议号',
+            trigger: 'blur'
+          }
+        ]"
+      >
+        <el-input
+          v-model="form.code"
+          placeholder="请输入协议号"
+          style="width: 100%"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="上传协议"
+        prop="url"
+        :rules="[
+          {
+            required: true,
+            message: '请上传协议',
+            trigger: 'blur, change'
+          }
+        ]"
+      >
+        <singe-file-upload
+          tips="仅支持上传 doc/docx 格式文件"
+          buttonText="点击上传协议"
+          accept=".doc, .docx"
+          @inputFile="readFileInputEventAsArrayBuffer"
+          v-model="form.url"
+        />
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="$listeners.close()">取 消</el-button>
+      <el-button type="primary" @click="addSubmit">下一步</el-button>
+    </span>
+
+    <el-dialog
+      title="查看协议"
+      :visible.sync="lookVisible"
+      width="415px"
+      append-to-body
+    >
+      <previewProtocol
+        @close="lookVisible = false"
+        :form="form"
+        v-if="lookVisible"
+      />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import previewProtocol from "@/views/tenantSetting/model/previewProtocol";
+import mammoth from "mammoth";
+import { headHtml, footerHtml } from './protocolTemplate'
+export default {
+  components: { previewProtocol },
+  data() {
+    return {
+      form: {
+        name: null,
+        code: null,
+        url: null,
+        fileContent: null, // 文件内容
+      },
+      lookVisible: false
+    };
+  },
+  mounted() {
+  },
+  methods: {
+    addSubmit() {
+      this.$refs['form'].validate((_) => {
+        if(_) {
+          this.lookVisible = true
+        }
+      })
+    },
+    displayResult(result) {
+      let html = result.value;
+      let newHTML = html.replace(//g, '')
+      .replace('<h1>', '<h2 style="font-size: 16px;font-weight: bold; padding-top: 15px;">')
+      newHTML = headHtml() + newHTML + footerHtml()
+      this.form.fileContent = newHTML
+    },
+    readFileInputEventAsArrayBuffer(file) {
+      let reader = new FileReader();
+      let that = this
+      reader.onload = function(loadEvent) {
+        let arrayBuffer = loadEvent.target.result; //arrayBuffer
+        mammoth
+          .convertToHtml({ arrayBuffer: arrayBuffer })
+          .then(function(result) {
+            console.log(result)
+            that.displayResult(result)
+          })
+          .done();
+      };
+      reader.readAsArrayBuffer(file.raw);
+    }
+  }
+};
+</script>
+
+<style lang="less" scoped>
+.dialog-footer {
+  display: block;
+  text-align: right;
+}
+/deep/ .el-dialog__body {
+  padding: 10px 10px 20px;
+}
+</style>

+ 44 - 0
src/views/tenantSetting/model/previewProtocol.vue

@@ -0,0 +1,44 @@
+<template>
+  <div>
+    <div class="scroll">
+      <div v-html="form.fileContent"></div>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="$listeners.close()">取 消</el-button>
+      <el-button type="primary" @click="addSubmit">确 认</el-button>
+    </span>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    form: {
+      type: Object
+    }
+  },
+  data() {
+    return {
+    }
+  },
+  async mounted() {
+  },
+  methods: {
+    addSubmit() {
+      console.log(this.form)
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.scroll {
+  overflow: auto;
+  max-height: 400px;
+}
+.dialog-footer {
+  display: block;
+  text-align: right;
+  margin-top: 20px;
+}
+</style>

+ 126 - 0
src/views/tenantSetting/model/protocolTemplate.js

@@ -0,0 +1,126 @@
+export function headHtml (title) {
+  return `
+  <!DOCTYPE html>
+  <html lang="en">
+  <head>
+      <meta charset="utf-8" />
+      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+      <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
+      <meta http-equiv="Pragma" content="no-cache" />
+      <meta http-equiv="Cache-Control" content="no-cache" />
+      <meta http-equiv="Expires" content="0" />
+      <title>${title || '产品与服务协议'}</title>
+      <style>
+          body { margin: 0; }
+          header {
+              height: 40px;
+              line-height: .40px;
+              color: #000;
+              font-size: 17px;
+              background: #fff;
+              box-shadow: 0px 1px 8px 0px rgba(0, 0, 0, 0.07);
+              text-align: center;
+          }
+          header .back {
+              width: 20px;
+              height: 20px;
+              position: absolute;
+              left: 12px;
+              top: 10px;
+          }
+          .container {
+              padding: 22px 20px 3px;
+              font-size: 14px;
+          }
+          h1 {
+              font-size: 18px;
+              text-align: center;
+              margin-bottom: 8px;
+          }
+          h2 {
+              font-size: 16px;
+              font-weight: bold;
+              padding-top: 15px;
+          }
+          h3 {
+              font-size: 14px;
+              font-weight: bold;
+          }
+          .signature {
+              padding-top: 50px;
+          }
+          .signature .sign {
+              position: relative;
+              width: 49%;
+              display: inline-block;
+          }
+          .signature span {
+              display: block;
+          }
+          .signature .cachet {
+              position: absolute;
+              top: -60px;
+              left: 0;
+              width: 150px;
+              height: 150px;
+          }
+          .iInfo {
+              display: flex;
+          }
+          .iInfo span {
+              flex: 1;
+          }
+          .iInfoContent, .iInfoContent span {
+              display: block;
+          }
+          .underline {
+              text-decoration: underline;
+          }
+          .bold {
+              font-weight: bold;
+          }
+      </style>
+  </head>
+  <body>
+      <div class="container">
+      <h1>《${title || '产品与服务协议'}》</h1>
+          <!-- 甲方:深圳大雅乐盟网络教育股份有限公司 <br/> -->
+          甲方:{{proto}} <br/>
+          <div style="display: flex;">乙方:
+              <div style="flex: 1 auto;">
+                  <div class="iInfo">
+                      <span>家长姓名 {{proto}}</span>
+                      <span>电话:{{proto}}</span>
+                  </div>
+                  <div class="iInfo">
+                      <span>身份证号:{{proto}}</span>
+                  </div>
+                  <div class="iInfo">
+                      <span>学生姓名:{{proto}}</span>
+                  </div>
+                  <div class="iInfo">
+                      <span>所在学校与班级:{{prot}}</span>
+                  </div>
+                  <div class="iInfo">
+                      <span>所在声部:{{proto}}</span>
+                  </div>
+              </div>
+          </div>
+          <div>(本协议中“乙方“指学员及家长;”乙方学员“指购买甲方产品或服务的学员;”乙方家长“仅指乙方学员的法定监护人。)</div>`
+}
+
+
+export function footerHtml() {
+  return `
+  <div class="signature">
+              <div class="sign">甲方签章:<img class="cachet" src="https://daya-online.oss-cn-beijing.aliyuncs.com/website/cachet.png" alt="" />
+                  <span>日期:{{proto}}</span>
+              </div>
+              <div class="sign">乙方签字:{{proto}}
+                  <span>日期:{{proto}} </span>
+              </div>
+          </div>
+      </div>
+  </body>
+  </html>`
+}

+ 14 - 62
src/views/tenantSetting/tenantInfoProtocol.vue

@@ -14,62 +14,18 @@
         :saveKey="'tenantTradeManager'"
         :model.sync="searchForm"
       >
-        <el-form-item prop="transNo">
-          <el-input
-            placeholder="交易流水号"
-            clearable
-            type="text"
-            v-model.trim="searchForm.transNo"
-          ></el-input>
-        </el-form-item>
-        <el-form-item prop="orderNo">
-          <el-input
-            placeholder="订单号"
-            clearable
-            type="text"
-            v-model.trim="searchForm.orderNo"
-          ></el-input>
-        </el-form-item>
-        <el-form-item prop="orderType">
+        <el-form-item prop="status">
           <el-select
-            v-model.trim="searchForm.orderType"
+            v-model.trim="searchForm.status"
             clearable
             filterable
-            @clear="onClear('orderType')"
-            placeholder="交易类型"
+            @clear="onClear('status')"
+            placeholder="状态"
           >
-            <el-option
-              v-for="(item, key, index) in tenantStatus"
-              :key="index"
-              :label="item"
-              :value="key"
-            ></el-option>
+            <el-option label="启用" :value="1"></el-option>
+            <el-option label="停用" :value="0"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="orderState">
-          <el-select
-            v-model.trim="searchForm.orderState"
-            clearable
-            filterable
-            @clear="onClear('orderState')"
-            placeholder="交易状态"
-          >
-            <el-option label="待支付" :value="0"></el-option>
-            <el-option label="已支付" :value="1"></el-option>
-            <el-option label="支付失败" :value="2"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item prop="createTimer">
-          <el-date-picker
-            v-model.trim="searchForm.createTimer"
-            type="daterange"
-            range-separator="至"
-            start-placeholder="订单开始时间"
-            :default-time="['00:00:00', '23:59:59']"
-            end-placeholder="订单结束时间"
-            :picker-options="{ firstDayOfWeek: 1 }"
-          ></el-date-picker>
-        </el-form-item>
         <el-form-item>
           <el-button native-type="submit" type="danger">搜索</el-button>
           <el-button native-type="reset" type="primary">重置</el-button>
@@ -78,7 +34,7 @@
       <el-button
         type="primary"
         style="margin-bottom: 20px"
-        @click="roleOperation('create')"
+        @click="protocolVisible = true"
         >新增协议</el-button
       >
       <!-- 列表 -->
@@ -137,8 +93,8 @@
       </div>
     </div>
 
-    <el-dialog title="订单详情" :visible.sync="orderVisible" width="1200px">
-      <order-info />
+    <el-dialog title="新增协议" :visible.sync="protocolVisible" width="560px">
+      <addProtocol v-if="protocolVisible" @close="protocolVisible = false"  />
     </el-dialog>
   </div>
 </template>
@@ -147,17 +103,13 @@ import pagination from "@/components/Pagination/index";
 import { tenantOrderRecordQueryPage } from "./api";
 import { tenantStatus } from '@/constant'
 import { dealStatus } from "@/utils/searchArray";
-import OrderInfo from './model/orderInfo'
+import addProtocol from './model/addProtocol'
 import { getTimes } from "@/utils";
 const initSearch = {
-  transNo: null,
-  orderNo: null,
-  orderType: null,
-  orderState: null,
-  createTimer: [],
+  status: null
 };
 export default {
-  components: { pagination, OrderInfo },
+  components: { pagination, addProtocol },
   data() {
     const baseTenantId = sessionStorage.getItem('baseTenantId')
     return {
@@ -165,7 +117,7 @@ export default {
       tenantStatus,
       dealStatus,
       tableList: [],
-      orderVisible: false,
+      protocolVisible: false,
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
@@ -204,7 +156,7 @@ export default {
       this.search();
     },
     openService(row) {
-      this.orderVisible = true
+      this.protocolVisible = true
     },
   },
   filters: {

+ 2 - 2
vue.config.js

@@ -19,8 +19,8 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // let target = 'http://192.168.3.251:8000' // 何国威
 // let target = 'http://192.168.3.250:8000' //邹璇
 // let target = 'http://192.168.3.119:8000' //勇哥
-// let target = 'http://dev.dayaedu.com' // 开发环境
-let target = 'https://test.dayaedu.com' //测试环境
+let target = 'http://dev.dayaedu.com' // 开发环境
+// let target = 'https://test.dayaedu.com' //测试环境
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {
   /**