Quellcode durchsuchen

1217 22:51

零星 零星
mo vor 5 Jahren
Ursprung
Commit
ad4326f97e

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/index.html


+ 1 - 0
dist/static/css/chunk-047dcaaa.d7bda41a.css

@@ -0,0 +1 @@
+.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.right-code .title{font-size:18px;text-align:center;padding-bottom:8px}

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/app.69d76efd.js


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/static/js/chunk-047dcaaa.8c6fad9d.js


+ 0 - 0
dist/static/js/chunk-90bc8dd8.ba748683.js → dist/static/js/chunk-90bc8dd8.f6057932.js


+ 27 - 0
src/api/zeroManager.js

@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+import qs from 'qs'
+let api = '/api-web'
+
+export function addZero (data) {
+  return request({
+    url: api + '/sporadicChargeInfo/add',
+    method: 'POST',
+    data: qs.stringify(data)
+  })
+}
+
+export function getZero (data) {
+  return request({
+    url: api + '/sporadicChargeInfo/queryPage',
+    method: 'GET',
+    params: data
+  })
+}
+
+export function removeZero (data) {
+  return request({
+    url: api + '/sporadicChargeInfo/delete',
+    method: 'POST',
+    data: qs.stringify(data)
+  })
+}

+ 16 - 1
src/router/index.js

@@ -81,7 +81,20 @@ export const constantRoutes = [
     path: '/404',
     component: () => import('@/views/404'),
     hidden: true
+  }, {
+    path: '/sporadicManager',
+    component: Layout,
+    hidden: false,
+    children: [
+      {
+        path: 'sporadicList',
+        component: () => import('@/views/setSilder/addSilder'),
+        hidden: false,
+      }
+    ]
+
   }
+
 ]
 // export const constantRoutes = [{
 //   path: '/',
@@ -203,7 +216,9 @@ export const asyncRoutes = {
   // 乐团课排课
   coursePlan: () => import('@/views/teamBuild/teamSeting/components/coursePlan'),
   // 收费分润管理
-  chargeProfitManager: () => import('../views/categroyManager/insideSetting/chargeProfitManager')
+  chargeProfitManager: () => import('../views/categroyManager/insideSetting/chargeProfitManager'),
+  // 零星管理
+  sporadicManager: () => import('@/views/sporadicManager/sporadicList')
 
 }
 export default router

+ 378 - 0
src/views/sporadicManager/sporadicList.vue

@@ -0,0 +1,378 @@
+<template>
+  <div class="m-container">
+    <h2>
+      <div class="squrt"></div>
+      零星收费
+    </h2>
+    <div class="m-core">
+      <!-- v-permission="'sporadicChargeInfo/add'" -->
+      <div class="newBand"
+           v-permission="'sporadicChargeInfo/add'"
+           @click="
+           newVisible">新增</div>
+      <el-form :inline="true"
+               :model="searchForm">
+        <el-form-item label="分部">
+          <el-select v-model="searchForm.organId"
+                     clearable
+                     filterable>
+            <el-option v-for='(item,index) in organList'
+                       :key="index"
+                       :value="item.id"
+                       :label="item.name"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="收费类型">
+          <el-select v-model="searchForm.type"
+                     clearable>
+            <el-option label="考级"
+                       :value="1"></el-option>
+            <el-option label="缴费"
+                       :value="2"></el-option>
+            <el-option label="声部更改"
+                       :value="3"></el-option>
+            <el-option label="乐器更换"
+                       :value="4"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-button type="danger"
+                   @click="search">搜索</el-button>
+        </el-form-item>
+      </el-form>
+      <div class="tableWrap">
+        <el-table :data='tableList'
+                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+          <el-table-column align='center'
+                           label="分部"
+                           prop="organName">
+          </el-table-column>
+          <el-table-column align='center'
+                           label="收费类型">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.chargeType | chargeTypeFilter }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align='center'
+                           label="标题"
+                           prop="title">
+          </el-table-column>
+          <el-table-column align='center'
+                           label="金额"
+                           prop="amount">
+          </el-table-column>
+          <el-table-column align='center'
+                           label="时间">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.createTime | formatTimer }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align='center'
+                           label="创建人"
+                           prop="operatorName">
+          </el-table-column>
+          <el-table-column align='center'
+                           label="操作">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="text"
+                           @click="lookVisible(scope.row)">查看</el-button>
+                <el-button type="text"
+                           v-permission="'sporadicChargeInfo/delete'"
+                           @click="removeItem(scope.row)">删除</el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination :total="pageInfo.total"
+                    :page.sync="pageInfo.page"
+                    :limit.sync="pageInfo.limit"
+                    :page-sizes="pageInfo.page_size"
+                    @pagination="getList" />
+      </div>
+    </div>
+    <el-dialog :title="title"
+               :visible.sync="zeroVisible"
+               width="650px">
+      <el-form :model='maskForm'
+               :rules="maskRules"
+               label-width="100px"
+               label-position="right"
+               :inline="true"
+               ref="zeroForm">
+        <el-form-item label="标题"
+                      prop="title">
+          <el-input v-model="maskForm.title"
+                    :disabled='!isNew'></el-input>
+        </el-form-item>
+        <el-form-item label="收费类型"
+                      prop="type">
+          <el-select v-model="maskForm.type"
+                     :disabled='!isNew'
+                     clearable
+                     filterable>
+            <el-option label="考级"
+                       :value="1"></el-option>
+            <el-option label="缴费"
+                       :value="2"></el-option>
+            <el-option label="声部更改"
+                       :value="3"></el-option>
+            <el-option label="乐器更换"
+                       :value="4"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="金额"
+                      prop='money'>
+          <el-input v-model="maskForm.money"
+                    type="number"
+                    :disabled='!isNew'></el-input>
+        </el-form-item>
+        <el-form-item label="分部"
+                      prop="organId">
+          <el-select v-model="maskForm.organId"
+                     :disabled='!isNew'
+                     clearable
+                     filterable>
+            <el-option v-for='(item,index) in organList'
+                       :key="index"
+                       :value="item.id"
+                       :label="item.name"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="查看链接"
+                      v-if="!isNew">
+          <el-input style='width:400px'
+                    :disabled='!isNew'
+                    v-model="maskForm.code"></el-input>
+          <el-button type='danger'
+                     @click="onCreateQRCode">二维码</el-button>
+        </el-form-item>
+        <el-form-item label="收费详情"
+                      prop="desc">
+          <el-input type='textarea'
+                    :disabled='!isNew'
+                    v-model="maskForm.desc"
+                    style="width:490px"
+                    :autosize="{minRows: 5}"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer"
+            class="dialog-footer">
+        <el-button @click="zeroVisible = false">取 消</el-button>
+        <el-button type="primary"
+                   v-if="isNew"
+                   @click="addZero">确 定</el-button>
+        <el-button v-if="!isNew"
+                   type="primary"
+                   @click="zeroVisible = false">确定</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog :visible.sync="qrcodeStatus"
+               center
+               width="300px">
+      <div class="right-code">
+        <h2 class="title">缴费链接</h2>
+        <div id="qrcode"
+             class="qrcode code"
+             ref="qrCodeUrl"></div>
+        <!-- <p class="code-url"
+           v-if="codeUrl2">{{ codeUrl2 }}</p> -->
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { getEmployeeOrgan } from '@/api/buildTeam'
+import pagination from '@/components/Pagination/index'
+import { vaildStudentUrl } from '@/utils/validate'
+import { addZero, getZero, removeZero } from '@/api/zeroManager'
+import QRCode from 'qrcodejs2'
+export default {
+  components: { pagination },
+  data () {
+    return {
+      zeroVisible: false,
+      searchForm: {
+        organId: null,
+        type: null,
+      },
+      tableList: [{}],
+      organList: [],
+      maskForm: {
+        organId: '',
+        type: '',
+        money: '',
+        desc: '',
+        title: '',
+        code: ''
+      },
+      maskRules: {
+        organId: [{ required: true, message: '请选择分部', trigger: 'change' }],
+        type: [{ required: true, message: '请选择收费类型', trigger: 'change' }],
+        money: [{ required: true, message: '请输入收费金额', trigger: 'change' }],
+        title: [{ required: true, message: '请输入标题名称', trigger: 'change' }],
+      },
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      },
+      isNew: false,
+      title: '新增收费',
+      qrcodeStatus: false,
+      qrcodes: true,
+      activeRow: null
+    }
+  }, mounted () {
+    getEmployeeOrgan().then(res => {
+      if (res.code == 200) {
+        this.organList = res.data;
+      }
+    })
+    this.getList();
+  },
+  methods: {
+    search () {
+      this.pageInfo.page = 1;
+      this.getList()
+    },
+    getList () {
+      let chargeType, organId;
+      this.searchForm.type ? chargeType = this.searchForm.type : chargeType = null
+      this.searchForm.organId ? organId = this.searchForm.organId : organId = null
+      getZero({ page: this.pageInfo.page, rows: this.pageInfo.limit, chargeType, organId }).then(res => {
+        if (res.code == 200) {
+          this.tableList = res.data.rows
+          this.pageInfo.total = res.data.total
+        }
+      })
+    },
+    newVisible () {
+      this.isNew = true;
+      this.zeroVisible = true;
+      this.title = '新增收费'
+    },
+    lookVisible (row) {
+      this.isNew = false;
+      this.zeroVisible = true;
+      this.title = '查看收费'
+      this.activeRow = row
+      this.maskForm = {
+        code: vaildStudentUrl() + `/#/sporadicLogin?id=${this.activeRow.id}`,
+        type: parseInt(row.chargeType),
+        desc: row.detail,
+        title: row.title,
+        organId: row.organId,
+        money: row.amount
+      }
+      // chargeType: this.maskForm.type,
+      //   detail: this.maskForm.desc,
+      //   title: this.maskForm.title,
+      //   organId: this.maskForm.organId,
+      //   amount: this.maskForm.money
+    },
+    // look2Code () { },
+    onCreateQRCode () { // 生成报名二维码
+      this.qrcodeStatus = true
+      // let id = this.$route.query.id
+      // let teamName = this.$route.query.name
+
+      setTimeout(() => {
+        if (this.qrcodes) {
+          this.qrcodes = false
+          this.qrcode = new QRCode('qrcode', {
+            width: 250,
+            height: 250,
+            colorDark: '#000000',
+            colorLight: '#ffffff',
+            correctLevel: QRCode.CorrectLevel.H
+          })
+        }
+        // vaildStudentUrl() + `/#/sporadicLogin?id=${刷刷刷}`
+        this.qrcode.clear();
+        this.qrcode.makeCode(vaildStudentUrl() + `/#/sporadicLogin?id=${this.activeRow.id}`)
+        // this.codeUrl = vaildStudentUrl() + '/#/login?musicGroupId=' + id
+      }, 500)
+    },
+    addZero () {
+      this.$refs['zeroForm'].validate(item => {
+        if (item) {
+          let obj = {
+            chargeType: this.maskForm.type,
+            detail: this.maskForm.desc,
+            title: this.maskForm.title,
+            organId: this.maskForm.organId,
+            amount: this.maskForm.money
+          }
+          addZero(obj).then(res => {
+            if (res.code == 200) {
+              this.$message.success('新增成功')
+              this.zeroVisible = false;
+              this.getList()
+            }
+          })
+        }
+      })
+    },
+    removeItem (row) {
+      this.$confirm('是否删除该收费', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        removeZero({ id: row.id }).then(res => {
+          if (res.code == 200) {
+            this.$message.error('删除成功')
+            this.zeroVisible = false;
+            this.getList()
+          }
+        })
+      }).catch(() => {
+      });
+    }
+  },
+  watch: {
+    zeroVisible (val) {
+      if (!val) {
+        this.maskForm = {
+          organId: '',
+          type: '',
+          money: '',
+          desc: '',
+          title: '',
+          code: ''
+        }
+        // this.$refs['zeroForm'].resetFields()
+        // console.log(this.$refs['zeroForm'].resetFields)
+      }
+    },
+  },
+  filters: {
+    chargeTypeFilter (val) {
+      let template = {
+        '1': '考级',
+        '2': '缴费',
+        '3': '声部更改',
+        '4': '乐器更换'
+      }
+      return template[val]
+    }
+  }
+}
+</script>
+<style lang="scss">
+.right-code {
+  // width: 50%;
+  // float: left;
+  .title {
+    font-size: 18px;
+    text-align: center;
+    padding-bottom: 8px;
+  }
+}
+</style>

+ 2 - 2
vue.config.js

@@ -17,9 +17,9 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // http://47.99.212.176:8000 
 // //  https://online.dayaedu.com
 // let target = 'https://online.dayaedu.com' //线上
-let target = 'http://testadm.dayaedu.com/' //勇哥迁库
+// let target = 'http://testadm.dayaedu.com/' //勇哥迁库
 // let target = 'http://192.168.3.27:8000' // 箭河
-// let target = 'http://192.168.3.28:8000' //邹璇
+let target = 'http://192.168.3.28:8000' //邹璇
 // let target = 'http://192.168.3.8:18000' //勇哥
 // let target = 'http://47.99.212.176:8000' // 测试服
 // let target = 'http://192.168.3.48:8080' // 乔

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.