浏览代码

付费规则

qymljy 2 年之前
父节点
当前提交
1780c66e60

+ 8 - 6
src/HManagement/siteManage/paymentRules/index.vue

@@ -4,34 +4,35 @@
       <el-button class="inline-24" type="primary" icon="el-icon-edit" size="small" v-if="!isSave && tool.checkAuth($route.name,'update')" @click="onEdit" >编 辑</el-button>
       <el-button class="inline-24" type="warning" icon="el-icon-edit" size="small" v-else-if="isSave && tool.checkAuth($route.name,'update')" @click="onSave">保 存</el-button>
       <versionDefinition class="inline-24" v-if="tool.checkAuth($route.name,'versionDefinition')"></versionDefinition>
+      <payOrders class="inline-24" v-if="tool.checkAuth($route.name,'payOrders')"></payOrders>
     </div>
     <div class="container normal-panel">
       <el-row :gutter="20">
         <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="right" size="mini" >
-          <el-col :span="15">
+          <el-col :span="18">
             <el-form-item label="是否开启付费:" prop="sys_payswitch" >
               <el-radio v-model="form.sys_payswitch" label='1' @input="isSave = true" :disabled="!isOpen">开启</el-radio>
               <el-radio v-model="form.sys_payswitch" label='0' @input="isSave = false" :disabled="!isOpen">关闭</el-radio>
             </el-form-item>
           </el-col>
-          <el-col :span="15">
+          <el-col :span="18">
             <el-form-item label="试用时间(月份):" prop="sys_trialperiod" >
               <el-input v-model="form.sys_trialperiod" type="number" placeholder="请填写试用时间" :disabled="!isSave"></el-input>
               <span style="font-size: 12px;color: #a8a9af">若为0,则无试用时间;</span>
             </el-form-item>
           </el-col>
-          <el-col :span="15">
+          <el-col :span="18">
             <el-form-item label="付费说明:" prop="brandname" >
               <el-input v-model="form.sys_payinstructions" placeholder="请填写付费说明" :disabled="!isSave"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="15">
+          <el-col :span="18">
             <el-form-item label="付费类型:" prop="sys_payincidence" >
               <el-radio v-model="form.sys_payincidence" label='1' :disabled="!isSave">按账号付费</el-radio>
               <el-radio v-model="form.sys_payincidence" label='2' :disabled="!isSave">按主体付费</el-radio>
             </el-form-item>
           </el-col>
-          <el-col :span="15">
+          <el-col :span="18">
             <el-form-item >
               <accountRule ref="accountRule" v-if="form.sys_payincidence == '1'" :disabled="isSave"></accountRule>
               <mainBodyRule ref="mainBodyRule" v-else :disabled="isSave"></mainBodyRule>
@@ -49,9 +50,10 @@ import edit from './modules/edit.vue'
 import versionDefinition from './modules/versionDefinition.vue'
 import accountRule from './modules/accountRule.vue'
 import mainBodyRule from './modules/mainBodyRule.vue'
+import payOrders from './modules/payOrders.vue'
 export default {
   name: "index",
-  components:{edit,versionDefinition,accountRule,mainBodyRule},
+  components:{edit,versionDefinition,accountRule,mainBodyRule,payOrders},
   data(){
     return {
       form:{

+ 29 - 26
src/HManagement/siteManage/paymentRules/modules/accountRule.vue

@@ -32,32 +32,35 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="20" v-for="(ruleItem,ruleIndex) in item.paymentrules" :key="ruleIndex">
-            <el-col :span="7">
-              <el-form-item label="最少人数:"  label-width="107px"
-                            :prop="'paymentrules.' + ruleIndex + '.min'"
-                            :rules="{required: true, message: '人数不能为空', trigger: 'blur'}">
-                <el-input v-model="ruleItem.min" placeholder="请填写人数"  type="number"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="7">
-              <el-form-item label="最多人数:"  label-width="90px"
-                            :prop="'paymentrules.' + ruleIndex + '.max'"
-                            :rules="{required: true, message: '人数不能为空', trigger: 'blur'}">
-                <el-input v-model="ruleItem.max" placeholder="请填写人数" type="number"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="7">
-              <el-form-item label="定价(元):"  label-width="90px"
-                            :prop="'paymentrules.' + ruleIndex + '.price'"
-                            :rules="{required: true,pattern:/^\d+(.\d{1,2})?$/, message: '只能输入数字且最多2位小数', trigger: 'blur'}">
-                <el-input v-model="ruleItem.price" placeholder="请填写金额(元)"  type="number"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="3">
-              <el-button type="primary" icon="el-icon-plus" circle v-if="ruleIndex === item.paymentrules.length -1 && tool.checkAuth($route.name,'insert')" class="inline-16" @click="addPrice(rowIndex)"></el-button>
-              <el-button type="info" icon="el-icon-close" circle v-if="item.paymentrules.length >1 && tool.checkAuth($route.name,'update')" @click="delPrice(ruleIndex,rowIndex)"></el-button>
-            </el-col>
+          <el-col :span="24" >
+            <div style="width: 650px;margin-left: 15px" v-for="(ruleItem,ruleIndex) in item.paymentrules" :key="ruleIndex">
+              <el-col :span="6">
+                <el-form-item label="最少人数:"  label-width="90px"
+                              :prop="'paymentrules.' + ruleIndex + '.min'"
+                              :rules="{required: true, message: '人数不能为空', trigger: 'blur'}">
+                  <el-input v-model="ruleItem.min" placeholder="请填写人数"  type="number"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="最多人数:"  label-width="90px"
+                              :prop="'paymentrules.' + ruleIndex + '.max'"
+                              :rules="{required: true, message: '人数不能为空', trigger: 'blur'}">
+                  <el-input v-model="ruleItem.max" placeholder="请填写人数" type="number"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="7">
+                <el-form-item label="定价(元):"  label-width="90px"
+                              :prop="'paymentrules.' + ruleIndex + '.price'"
+                              :rules="{required: true,pattern:/^\d+(.\d{1,2})?$/, message: '只能输入数字且最多2位小数', trigger: 'blur'}">
+                  <el-input v-model="ruleItem.price" placeholder="请填写金额(元)"  type="number"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="4">
+                <el-button size="mini" type="primary" icon="el-icon-plus" circle v-if="ruleIndex === item.paymentrules.length -1 && tool.checkAuth($route.name,'insert')" class="inline-16" @click="addPrice(rowIndex)"></el-button>
+                <el-button size="mini" type="info" icon="el-icon-close" circle v-if="item.paymentrules.length >1 && tool.checkAuth($route.name,'update')" @click="delPrice(ruleIndex,rowIndex)"></el-button>
+              </el-col>
+            </div>
+
           </el-col>
         </el-form>
       </el-row>

+ 103 - 0
src/HManagement/siteManage/paymentRules/modules/payOrders.vue

@@ -0,0 +1,103 @@
+<template>
+  <div>
+    <el-button  size="small" type="primary" @click="onShow">付费订单</el-button>
+    <el-drawer
+        title="付费订单"
+        :visible.sync="drawer"
+        :show-close="false"
+        size="70%"
+       >
+      <el-divider></el-divider>
+      <div style="padding: 0px 10px 10px 10px">
+        <el-input  style="width:200px;" placeholder="搜索" :suffix-icon="param.content.where.condition?param.content.where.condition.length > 0?'':'':'el-icon-search'" v-model="param.content.where.condition" @keyup.native.enter="listData(param.content.pageNumber = 1)" @clear="listData(param.content.pageNumber = 1)" size="small" class="input-with-select inline-24 layout_search__panel" clearable>
+        </el-input>
+        <tableLayout style="margin-top: 20px" :layout="tablecols" :data="list" :opwidth="200" :custom="true"  height="calc(100vh - 340px)">
+          <template v-slot:customcol="scope">
+             <span v-if="scope.column.columnname === 'ispaid'" >
+                <span v-if="scope.column.data[scope.column.columnname] == '0'" style="color: #4f7bfd">未付费</span>
+                <span v-else-if="scope.column.data[scope.column.columnname] == '3'" style="color: #afb0be">已取消</span>
+                <span v-else>已付费</span>
+             </span>
+            <span v-else-if="scope.column.columnname === 'amount'" >
+                <span style="color: red">{{tool.formatAmount(scope.column.data[scope.column.columnname],2)}}</span>
+            </span>
+            <p v-else>{{scope.column.data[scope.column.columnname] || '--'}}</p>
+          </template>
+        </tableLayout>
+        <div class="container normal-panel" style="text-align:right">
+          <el-pagination
+              background
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="currentPage"
+              :page-sizes="[20, 50, 100, 200]"
+              :page-size="20"
+              layout="total,sizes, prev, pager, next, jumper"
+              :total="total">
+          </el-pagination>
+        </div>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "payOrders",
+  data() {
+    return {
+      drawer:false,
+      tablecols:[],
+      list:[],
+      currentPage:0,
+      total:0,
+      param:{
+        "classname": "system.payorder.payorder",
+        "method": "list",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+            "condition": ""
+          }
+        },
+      }
+    }
+  },
+  methods:{
+    onShow(){
+      this.drawer = true
+      this.listData()
+    },
+    async listData(){
+      const res = await this.$api.requested(this.param)
+      this.list = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.listData()
+    },
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name).payOrderTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+  /deep/ .el-drawer__header {
+    align-items: center;
+    color: #151515;
+    display: flex;
+    margin-bottom: -20px;
+    padding: 10px;
+  }
+</style>

+ 2 - 2
src/SManagement/user/pay-orders/index.vue

@@ -13,7 +13,7 @@
         <template v-slot:customcol="scope">
           <span v-if="scope.column.columnname === 'ispaid'" >
             <span v-if="scope.column.data[scope.column.columnname] == '0'" style="color: #4f7bfd">未付费</span>
-            <span v-else-if="scope.column.data[scope.column.columnname] == '3'" style="color: #afb0be">已过期</span>
+            <span v-else-if="scope.column.data[scope.column.columnname] == '3'" style="color: #afb0be">已取消</span>
             <span v-else>已付费</span>
           </span>
           <span v-else-if="scope.column.columnname === 'amount'" >
@@ -28,7 +28,7 @@
               title="确定删除该订单吗?"
               @confirm="onDel(scope.data)"
           >
-            <el-button slot="reference" type="text" size="mini" v-if="scope.data.ispaid == '0' && tool.checkAuth($route.name,'delete')" >删 除</el-button>
+            <el-button slot="reference" type="text" size="mini" v-if="(scope.data.ispaid == '0' || scope.data.ispaid == '3') && tool.checkAuth($route.name,'delete')" >删 除</el-button>
           </el-popconfirm>
         </template>
       </tableLayout>

+ 1 - 0
src/SManagement/user/pay-orders/modules/add.vue

@@ -295,6 +295,7 @@ export default {
     },
     onSubmit(){
       this.createNow = true
+      this.form.remarks = ''
       this.queryPrice()
     },
     /*获取订单价格*/

+ 1 - 1
src/SManagement/user/pay-orders/modules/detail.vue

@@ -15,7 +15,7 @@
         <el-col :span="4" class="span-top">
           <span >付费状态:
              <span v-if="list.ispaid == '0'" style="color: red">未付费</span>
-            <span v-else-if="list.ispaid == '3'" style="color: #afb0be">已过期</span>
+            <span v-else-if="list.ispaid == '3'" style="color: #afb0be">已取消</span>
               <span v-else>已付费</span>
           </span>
 

+ 1 - 1
src/SManagement/user/pay-orders/modules/payment.vue

@@ -63,7 +63,7 @@
             </template>
           </tableLayout>
         </el-col>
-        <el-col :span="24" class="div_span_top" v-else>
+        <el-col :span="24" class="div_span_top" v-if="list.sys_payincidence == '2'">
           <tableLayout :layout="tablecolsMain" :data="accountList" :opwidth="200" :custom="true" :height="200 + 'px'" >
             <template v-slot:customcol="scope">
               <p >{{scope.column.data[scope.column.columnname] || '--'}}</p>

+ 5 - 1
src/SManagement/user/team-manage/components/detail.vue

@@ -36,7 +36,8 @@
     <div class="container normal-panel">
       <el-row>
         <el-col :span="24">
-          <div class="title-style">账号详情</div>
+          <div class="title-style inline-16">账号详情</div>
+          <el-button size="small" type="primary" @click="payOrder">账号付费</el-button>
         </el-col>
       </el-row>
       <tableLayout style="margin-top: 20px" :layout="tablecols" :data="list"  :opwidth="200" :custom="true"  fixedName="operation">
@@ -82,6 +83,9 @@ export default {
     async listData(){
       const res = await this.$api.requested(this.param)
       this.list = res.data
+    },
+    payOrder(){
+      this.$router.replace({path:'/pay_orders',query:{isPay:'1'}})
     }
   },
   mounted() {

+ 29 - 6
src/SManagement/user/team-manage/index.vue

@@ -32,11 +32,8 @@
           <span v-else-if="scope.column.columnname === 'partitionname'">
             <span v-if="scope.column.data.partitionname.length !== 0">
              <span v-for="(item,index) in scope.column.data.partitionname " :key="index">
-              <span v-if="index === scope.column.data.partitionname.length -1">
-                <el-tag type="success" size="mini">{{item}}</el-tag>
-              </span>
-              <span v-else>
-                <el-tag type="success" style="margin-left: 5px" size="mini">{{item}}</el-tag>
+              <span >
+                <el-tag type="success" size="mini">{{item.partitionname + item.enddate}}</el-tag>
               </span>
              </span>
             </span>
@@ -51,6 +48,18 @@
           <el-button size="mini" type="text" @click="editTargetFun(scope.data)">编 辑</el-button>
         </template>
       </tableLayout>
+      <div class="container normal-panel" style="text-align:right">
+        <el-pagination
+            background
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-sizes="[20, 50, 100, 200]"
+            :page-size="20"
+            layout="total,sizes, prev, pager, next, jumper"
+            :total="total">
+        </el-pagination>
+      </div>
     </div>
   </div>
 </template>
@@ -65,6 +74,8 @@ export default {
     return {
       tablecols:[],
       list:[],
+      currentPage:0,
+      total:0,
       param:{
         "classname": "sale.team.team",
         "method": "query_teamList",
@@ -92,6 +103,8 @@ export default {
       const res = await this.$api.requested(this.param)
       console.log(res,'数据信息')
       this.list = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
     },
     addUser() {
       this.$refs.addUser.dialogVisible = true
@@ -109,7 +122,17 @@ export default {
     addSuccess(){
       this.queryData()
       console.log('刷新数据')
-    }
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.param.content.pageSize = val
+      this.queryData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.param.content.pageNumber = val
+      this.queryData()
+    },
   },
   mounted() {
     this.queryData()

+ 27 - 19
src/components/layout/modules/aside.vue

@@ -24,7 +24,8 @@ export default {
       activePath:null,
       auth_data:'',
       isneedpay:false,
-      dialogVisible:false
+      dialogVisible:false,
+      usertype:21
     }
   },
   computed: {
@@ -41,12 +42,15 @@ export default {
     getAuthList () {
       let active_modules = JSON.parse(sessionStorage.getItem('active_modules'))
       this.auth_data = active_modules.apps
+      let usertype = JSON.parse(sessionStorage.getItem('active_account'))
+      this.usertype = usertype.usertype
+      console.log(this.usertype,'usertype')
       if (this.activePath) {
         this.activePath = active_modules.apps[0].path
       } else {
         if (this.auth_data[0].isneedpay){
-          this.activePath = this.$route.path
-          this.$router.push({path:'/mask',meta:{title: '无权限333'}})
+          this.activePath = '/mask'
+          this.$router.replace({path:'/mask',meta:{title: '无权限333'}})
           this.open()
         }else {
           this.activePath = this.$route.path
@@ -57,18 +61,19 @@ export default {
       this.isneedpay = val.isneedpay
       this.activePath = this.$route.path
       if (val.isneedpay){
-        this.$router.push({path:'/mask',meta:{title: '无权限333'} })
+        this.$router.replace({path:'/mask',meta:{title: '无权限333'} })
         this.open()
       }
     },
     open() {
       this.$confirm('当前模块未付费,是否付费使用?', '付费提醒', {
         distinguishCancelAndClose: true,
+        showClose: true,
         closeOnClickModal:false,
         confirmButtonText: '付费',
-        cancelButtonText: '提醒付费'
+        cancelButtonText: this.usertype == '22'?'提醒付费':'取消'
       })
-      .then(() => {
+      .then((action) => {
         let module = JSON.parse(sessionStorage.getItem('module_info'))
         let moduleList = []
         module.forEach(item=>{
@@ -89,20 +94,23 @@ export default {
         let active_modules = JSON.parse(sessionStorage.getItem('active_modules'))
         this.auth_data = active_modules.apps
       })
-      .catch(async action => {
-        const res = await this.$api.requested({
-          "classname": "system.payorder.payorder",
-          "method": "sendMessage",
-          "content": {
-            "sys_payorderid": 0
-          },
-        })
-        if (res.code === 1){
-          this.$message({
-            message: '已提醒负责人付费',
-            type: 'success'
-          });
+      .catch(async (action) => {
+        if (action === 'cancel' && this.usertype == '22'){
+          const res = await this.$api.requested({
+            "classname": "system.payorder.payorder",
+            "method": "sendMessage",
+            "content": {
+              "sys_payorderid": 0
+            },
+          })
+          if (res.code === 1){
+            this.$message({
+              message: '已提醒负责人付费',
+              type: 'success'
+            });
+          }
         }
+
       });
     }
   },

+ 21 - 2
src/views/message/components/list.vue

@@ -4,7 +4,8 @@
       <div class="item">
         <div class="left">
           <p class="title">{{item.title}}</p>
-          <p class="message">{{item.message}}</p>
+          <p class="message" v-if="item.title === '付费申请'" @click="payOrder" style="color: #4f7bfd">{{item.message}}</p>
+          <p class="message" v-else>{{item.message}}</p>
           <div class="info">
             <div class="tag">{{item.name || '系统消息'}}</div>
             <p class="time">{{item.createdate}}</p>
@@ -39,8 +40,26 @@ export default {
       this.dialogVisible = false
     },
     async detailClick(item) {
-      
+
       this.$emit('messageItemClick',item)
+    },
+    payOrder(){
+      let module = JSON.parse(sessionStorage.getItem('module_info'))
+      let moduleList = []
+      module.forEach(item=>{
+        if (item.systemname === '通用'){
+          moduleList = item
+        }
+      })
+      let apps = []
+      moduleList.modules.forEach(item=>{
+        if (item.systemmodulename === '个人中心'){
+          apps = item
+        }
+      })
+      sessionStorage.setItem('active_modules',JSON.stringify(apps))
+      sessionStorage.setItem('currentPath','/pay_orders')
+      this.$router.replace({path:'/pay_orders',query:{isPay:'1'}})
     }
   },
 };

+ 20 - 1
src/views/message/index.vue

@@ -27,7 +27,8 @@
             <span>发布于:{{message.createdate}} | {{message.name || message.type}}</span>
           </p>
           <div class="content-txt">
-            <p class="txt">{{message.message}}</p>
+            <p class="txt" v-if="message.title === '付费申请'" style="color: #4f7bfd" @click="payOrder">{{message.message}}</p>
+            <p class="txt" v-else>{{message.message}}</p>
             <p class="link" @click="goDetail" v-if="currentItem == 1 && message.link">请前往 {{message.name}}>></p>
           </div>
         </div>
@@ -210,6 +211,24 @@ export default {
             })
             break;
       }
+    },
+    payOrder(){
+      let module = JSON.parse(sessionStorage.getItem('module_info'))
+      let moduleList = []
+      module.forEach(item=>{
+        if (item.systemname === '通用'){
+          moduleList = item
+        }
+      })
+      let apps = []
+      moduleList.modules.forEach(item=>{
+        if (item.systemmodulename === '个人中心'){
+          apps = item
+        }
+      })
+      sessionStorage.setItem('active_modules',JSON.stringify(apps))
+      sessionStorage.setItem('currentPath','/pay_orders')
+      this.$router.replace({path:'/pay_orders',query:{isPay:'1'}})
     }
   },
 };