瀏覽代碼

分账配置,商城代服对接

ct 2 天之前
父節點
當前提交
939dc9f57a

+ 16 - 0
src/api/his/company.js

@@ -71,3 +71,19 @@ export function exportCompany(query) {
     params: query
   })
 }
+
+// 查询诊所管理详细
+export function getDivConfig(companyId) {
+  return request({
+    url: '/his/company/getDivConfig/' + companyId,
+    method: 'get'
+  })
+}
+
+export function setDiv(data) {
+  return request({
+    url: '/his/company/setDiv',
+    method: 'post',
+    data: data
+  })
+}

+ 53 - 0
src/api/his/dfAccount.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询代服账户列表
+export function listAccount(query) {
+  return request({
+    url: '/his/dfAccount/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询代服账户详细
+export function getAccount(id) {
+  return request({
+    url: '/his/dfAccount/' + id,
+    method: 'get'
+  })
+}
+
+// 新增代服账户
+export function addAccount(data) {
+  return request({
+    url: '/his/dfAccount',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改代服账户
+export function updateAccount(data) {
+  return request({
+    url: '/his/dfAccount',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除代服账户
+export function delAccount(id) {
+  return request({
+    url: '/his/dfAccount/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出代服账户
+export function exportAccount(query) {
+  return request({
+    url: '/his/dfAccount/export',
+    method: 'get',
+    params: query
+  })
+}

+ 53 - 0
src/api/his/divItem.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询分账明细列表
+export function listDivItem(query) {
+  return request({
+    url: '/his/divItem/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询分账明细详细
+export function getDivItem(id) {
+  return request({
+    url: '/his/divItem/' + id,
+    method: 'get'
+  })
+}
+
+// 新增分账明细
+export function addDivItem(data) {
+  return request({
+    url: '/his/divItem',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改分账明细
+export function updateDivItem(data) {
+  return request({
+    url: '/his/divItem',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除分账明细
+export function delDivItem(id) {
+  return request({
+    url: '/his/divItem/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出分账明细
+export function exportDivItem(query) {
+  return request({
+    url: '/his/divItem/export',
+    method: 'get',
+    params: query
+  })
+}

+ 67 - 19
src/api/hisStore/storeOrder.js

@@ -1,11 +1,11 @@
 import request from '@/utils/request'
 
 // 查询订单列表
-export function listStoreOrder(query) {
+export function listStoreOrder(data) {
   return request({
     url: '/store/store/storeOrder/list',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: data
   })
 }
 
@@ -34,11 +34,11 @@ export function listPromotionOrder(query) {
   })
 }
 // 查询健康商城订单列表
-export function listHealthStoreOrder(query) {
+export function listHealthStoreOrder(data) {
   return request({
     url: '/store/store/storeOrder/healthList',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: data
   })
 }
 
@@ -122,39 +122,39 @@ export function delStoreOrder(id) {
 }
 
 // 导出订单
-export function exportStoreOrder(query) {
+export function exportStoreOrder(data) {
   return request({
     url: '/store/store/storeOrder/export',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: data
   })
 }
 
 // 导出订单
-export function exportStoreOrderDetails(query) {
+export function exportStoreOrderDetails(data) {
   return request({
     url: '/store/store/storeOrder/exportDetails',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: data
   })
 }
 
 
 // 导出订单
-export function exportHealthStoreOrder(query) {
+export function exportHealthStoreOrder(data) {
   return request({
     url: '/store/store/storeOrder/healthExport',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: data
   })
 }
 
 // 导出订单
-export function exportHealthStoreOrderDetails(query) {
+export function exportHealthStoreOrderDetails(data) {
   return request({
     url: '/store/store/storeOrder/healthExportDetails',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: data
   })
 }
 
@@ -325,7 +325,55 @@ export function orderDimensionStatisticsExport(query) {
 
 export function importDeliveryNoteExpressTemplate() {
   return request({
-    url: '/store/storeOrder/importDeliveryNoteExpressTemplate',
+    url: '/store/store/storeOrder/importDeliveryNoteExpressTemplate',
+    method: 'get'
+  })
+}
+
+export function queryErpPhone(query) {
+  return request({
+    url: '/store/store/storeOrder/queryErpPhone',
+    method: 'get',
+    params: query
+  })
+}
+
+export function saveErpPhone(data) {
+  return request({
+    url: '/store/store/storeOrder/saveErpPhone',
+    method: 'post',
+    data: data
+  })
+}
+
+export function editErpPhone(data) {
+  return request({
+    url: '/store/store/storeOrder/editErpPhone',
+    method: 'post',
+    data: data
+  })
+}
+
+export function batchCreateErpOrder(data) {
+  return request({
+    url: '/store/store/storeOrder/batchCreateErpOrder',
+    method: 'post',
+    data: data
+  })
+}
+
+export function batchSetErpOrder(data) {
+  return request({
+    url: '/store/store/storeOrder/batchSetErpOrder',
+    method: 'post',
+    data: data
+  })
+}
+
+
+export function getErpAccount() {
+  return request({
+    url: '/store/store/storeOrder/getErpAccount',
     method: 'get'
   })
 }

+ 170 - 3
src/views/his/company/index.vue

@@ -134,7 +134,7 @@
       <el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
       <el-table-column label="更新时间" align="center" prop="updateTime" width="180"/>
       <!--      <el-table-column label="主机重启时间" align="center" prop="restartTime" width="180" />-->
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200px">
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="220px">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -176,7 +176,13 @@
             v-hasPermi="['his:company:deduct']"
           >扣款
           </el-button>
-
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleRevenue(scope.row)"
+            v-hasPermi="['company:company:revenue']"
+          >分账配置</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -473,6 +479,99 @@
         <el-button @click="deduct.open=false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog :title="revenue.title" :visible.sync="revenue.open" width="800px" append-to-body>
+      <el-form ref="revenueForm"  :model="revenueForm" label-width="150px">
+        <el-form-item label="公司">
+          <el-input v-model="revenueForm.companyName" disabled/>
+        </el-form-item>
+       
+        <el-form-item label="开启分账">
+          <el-switch
+            v-model="revenueForm.divFlag"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+            active-value="1"
+            inactive-value="0"
+          >
+          </el-switch>
+        </el-form-item>
+        
+        <el-form-item label="分账模式" v-if="revenueForm.divFlag == 1">
+          <el-radio v-model="revenueForm.delayAcctFlag" label="N">实时分账</el-radio>
+          <el-radio v-model="revenueForm.delayAcctFlag" label="Y">延时分账</el-radio>
+        </el-form-item>
+        <el-form-item label="是否使用百分比分账">
+          <el-switch
+            v-model="revenueForm.percentageFlag"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+            active-value="Y"
+            inactive-value="N"
+          >
+          </el-switch>
+        </el-form-item>
+        <el-form-item label="是否净值分账" v-if="revenueForm.percentageFlag == 'Y'">
+          <el-switch
+            v-model="revenueForm.iscCleanSplit"
+            active-color="#13ce66"
+            inactive-color="#ff4949"
+            active-value="Y"
+            inactive-value="N"
+          >
+          </el-switch>
+        </el-form-item>
+        <div v-if="revenueForm.divFlag == 1">
+            <el-form-item label="分账接收方配置">
+              <el-tooltip content="批量设置erp账户" placement="top">
+                <el-button type="primary" icon="el-icon-plus" @click="addAcctInfo" style="margin-bottom: 5px;">
+                  添加新接收方
+                </el-button>
+              </el-tooltip>
+              
+            </el-form-item>
+
+            <div v-for="(account, index) in revenueForm.acctInfos" :key="index"
+                 style="border: 1px solid #dcdfe6; padding: 20px; margin-bottom: 20px; border-radius: 4px;"
+            >
+              <div style="display: flex; justify-content: between; align-items: center; margin-bottom: 15px;">
+                <div style="margin: 0; color: #409eff;">账户 {{ index + 1 }}</div>
+                <el-button
+                  type="danger"
+                  icon="el-icon-delete"
+                  size="mini"
+                  @click="removeAcctInfo(index)"
+                  v-if="revenueForm.acctInfos.length > 0"
+                >
+                  删除账户
+                </el-button>
+              </div>
+
+              <el-form-item label="分账接收方ID" :prop="`acctInfos.${index}.huifuId`">
+                <el-input v-model="account.huifuId"   placeholder="斗拱开户时生成;示例值:6666000123120001"></el-input>
+              </el-form-item>
+              <el-form-item label="账户号" :prop="`acctInfos.${index}.acctId`" >
+                <el-input v-model="account.acctId"  placeholder="可指定账户号,仅支持基本户、现金户,不填默认为基本户;示例值:F00598600"></el-input>
+              </el-form-item>
+              
+              <el-form-item label="分账百分比%" v-if="revenueForm.percentageFlag == 'Y'" :prop="`acctInfos.${index}.percentageDiv`"  >
+                <el-input-number v-model="account.percentageDiv" :precision="2" :step="0.1" :min="0" :max="100" placeholder="示例值:23.50,表示23.50%。acct_infos中全部分账百分比之和必须为100.00%。"></el-input-number>
+              </el-form-item>
+              <el-form-item label="分账金额" v-if="revenueForm.percentageFlag == 'N'" :prop="`acctInfos.${index}.divAmt`"  >
+                <el-input-number v-model="account.divAmt" :precision="2" :step="1" :min="0.01" placeholder="单位元,需保留小数点后两位,示例值:1.00 ,最低传入0.01"></el-input-number>
+              </el-form-item>
+              
+            </div>
+          </div>
+
+       
+       
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitRevenueForm">确 定</el-button>
+        <el-button @click="revenue.open=false">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -486,7 +585,9 @@ import {
   recharge,
   deduct,
   exportCompany,
-  resetPwd
+  resetPwd,
+  getDivConfig,
+  setDiv
 } from '@/api/his/company'
 import { getFollowDoctorList } from '@/api/his/doctor'
 import { docList } from '@/api/his/doctor'
@@ -501,6 +602,14 @@ export default {
   name: 'Company',
   data() {
     return {
+      //分账参数
+      revenue:{
+          open: false,
+          title: '分账配置'
+      },
+      revenueForm:{
+        acctInfos: [] 
+      },
       // 表单参数
       deductForm: {
         money: 0
@@ -670,6 +779,50 @@ export default {
     })
   },
   methods: {
+    // 添加分账账户
+    addAcctInfo() {
+      console.log("-----------------",this.revenueForm)
+      this.revenueForm.acctInfos.push({
+        huifuId: '',
+        acctId: '',
+        percentageDiv: null,
+        divAmt: null
+      })
+    },
+    // 删除接收方账户
+    removeAcctInfo(index) {
+      this.$confirm('确认删除该接收方账户?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.revenueForm.acctInfos.splice(index, 1)
+        this.$message.success('删除成功')
+      }).catch(() => {
+      })
+    },
+    handleRevenue(row){
+      const companyId = row.companyId
+      //查询配置
+      this.revenueForm.isAdd = 1
+      getDivConfig(companyId).then(response => {
+        if(response.data){
+          this.revenueForm = response.data
+          if(response.data.acctInfos == null){
+            this.revenueForm.acctInfos = []
+          }
+          if(response.data.divFlag){
+            this.revenueForm.divFlag = String(response.data.divFlag)
+          }
+        }
+      })
+      this.revenueForm.companyId = companyId
+      this.revenueForm.companyName = row.companyName
+      if(row.divFlag){
+        this.revenueForm.divFlag == "0"
+      }
+      this.revenue.open = true
+    },
     handleRecharge(row) {
       const companyId = row.companyId
       this.rechargeForm.companyId = row.companyId
@@ -700,6 +853,20 @@ export default {
         }
       })
     },
+    submitRevenueForm(){
+      var param = this.revenueForm;
+      console.log("--------------",param)
+      if(param.companyId && param.divFlag){
+        setDiv(param).then(response => {
+            if (response.code === 200) {
+              this.msgSuccess(response.msg)
+              this.revenue.open = false
+              this.getList()
+            }
+          })
+        console.log("--------------",param)
+      }
+    },
     /** 提交按钮 */
     submitDeductForm() {
       this.$refs['deductForm'].validate(valid => {

+ 442 - 0
src/views/his/dfAccount/index.vue

@@ -0,0 +1,442 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="AppKey" prop="dfAppKey">
+        <el-input
+          v-model="queryParams.dfAppKey"
+          placeholder="请输入dfAppKey"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="Appsecret" prop="dfAppsecret">
+        <el-input
+          v-model="queryParams.dfAppsecret"
+          placeholder="请输入dfAppsecret"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="登录账号" prop="loginAccount">
+        <el-input
+          v-model="queryParams.loginAccount"
+          placeholder="请输入登录账号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+    
+      <el-form-item label="月结账号" prop="monthlyCard">
+        <el-input
+          v-model="queryParams.monthlyCard"
+          placeholder="请输入月结账号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="物流产品" prop="expressProductCode">
+        <el-select v-model="queryParams.expressProductCode" placeholder="请选择物流产品编码" clearable size="small">
+          <el-option
+            v-for="dict in expressOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="寄件人" prop="senderName">
+        <el-input
+          v-model="queryParams.senderName"
+          placeholder="请输入寄件人姓名"
+          clearable
+          size="small"
+          @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-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['his:dfAccount:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['his:dfAccount:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['his:dfAccount:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['his:dfAccount:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="accountList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="key" align="center" prop="dfAppKey" />
+      <el-table-column label="secret" align="center" prop="dfAppsecret" />
+      <el-table-column label="登录账号" align="center" prop="loginAccount" />
+      <el-table-column label="回调地址" align="center" prop="callBackUrl" />
+      <el-table-column label="月结账号" align="center" prop="monthlyCard" />
+      <el-table-column label="物流产品" align="center" >
+        <template slot-scope="scope">
+          <dict-tag :options="expressOptions" :value="scope.row.expressProductCode"/>
+        </template>
+        </el-table-column>  
+      <el-table-column label="寄件人姓名" align="center" prop="senderName" />
+      <el-table-column label="寄件人手机" align="center" prop="senderPhone" />
+      <el-table-column label="寄件人省" align="center" prop="senderProvince" />
+      <el-table-column label="寄件人市" align="center" prop="senderCity" />
+      <el-table-column label="寄件人区" align="center" prop="senderDistrict" />
+      <el-table-column label="寄件人地址" align="center" prop="senderAddress" />
+      <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"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['his:dfAccount:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['his:dfAccount:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改代服账户对话框 -->
+    <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="Key" prop="dfAppKey">
+          <el-input v-model="form.dfAppKey" placeholder="请输入dfAppKey" />
+        </el-form-item>
+        <el-form-item label="secret" prop="dfAppsecret">
+          <el-input v-model="form.dfAppsecret" placeholder="请输入dfAppsecret" />
+        </el-form-item>
+        <el-form-item label="登录账号" prop="loginAccount">
+          <el-input v-model="form.loginAccount" placeholder="请输入登录账号" />
+        </el-form-item>
+        <el-form-item label="回调地址" prop="callBackUrl">
+          <el-input v-model="form.callBackUrl" placeholder="请输入回调地址" />
+        </el-form-item>
+        <el-form-item label="月结账号" prop="monthlyCard">
+          <el-input v-model="form.monthlyCard" placeholder="请输入月结账号" />
+        </el-form-item>
+        <el-form-item label="物流产品" prop="expressProductCode">
+          <el-select v-model="form.expressProductCode" placeholder="请选择物流产品编码" clearable size="small">
+            <el-option
+              v-for="dict in expressOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="寄件姓名" prop="senderName">
+          <el-input v-model="form.senderName" placeholder="请输入寄件人姓名" />
+        </el-form-item>
+        <el-form-item label="寄件手机" prop="senderPhone">
+          <el-input v-model="form.senderPhone" placeholder="寄件人手机" />
+        </el-form-item>
+        <el-form-item label="省市区" prop="cityIds">
+          <el-cascader
+            placeholder="请选择寄件人省市区"
+            ref="citySelect"
+            v-model="form.cityIds"
+            :options="citys"
+            @change="handleCityChange()"
+          >
+          </el-cascader>
+        </el-form-item>
+        <el-form-item label="详细地址" prop="senderAddress">
+          <el-input v-model="form.senderAddress" placeholder="请输入寄件人地址" />
+        </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>
+
+<script>
+import { listAccount, getAccount, delAccount, addAccount, updateAccount, exportAccount } from "@/api/his/dfAccount";
+import { getCitys } from '@/api/store/city'
+export default {
+  name: "Account",
+  data() {
+    return {
+      citys: [],
+      expressOptions:[],//物流产品编码
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 代服账户表格数据
+      accountList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        dfAppKey: null,
+        dfAppsecret: null,
+        loginAccount: null,
+        callBackUrl: null,
+        monthlyCard: null,
+        expressProductCode: null,
+        senderName: null,
+        senderPhone: null,
+        senderProvince: null,
+        senderCity: null,
+        senderDistrict: null,
+        senderAddress: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        dfAppKey: [
+          { required: true, message: "key不能为空", trigger: "blur" }
+        ],
+        dfAppsecret: [
+          { required: true, message: "secret不能为空", trigger: "blur" }
+        ],
+        loginAccount: [
+          { required: true, message: "登录账户不能为空", trigger: "blur" }
+        ],
+        callBackUrl: [
+          { required: true, message: "回调地址不能为空", trigger: "blur" }
+        ],
+        monthlyCard: [
+          { required: true, message: "月结账户不能为空", trigger: "blur" }
+        ],
+        expressProductCode: [
+          { required: true, message: "物流产品不能为空", trigger: "blur" }
+        ],
+        senderName: [
+          { required: true, message: "寄件人不能为空", trigger: "blur" }
+        ],
+        senderPhone: [
+          { required: true, message: "寄件人电话不能为空", trigger: "blur" }
+        ],
+        cityIds: [
+          { required: true, message: "省市区不能为空", trigger: "blur" }
+        ],
+        senderAddress: [
+          { required: true, message: "详细地址不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getCitys();
+    this.getDicts("df_account_express").then(response => {
+      this.expressOptions = response.data;
+    });
+    this.getList();
+  },
+  methods: {
+    handleCityChange() {
+      var nodes = this.$refs.citySelect.getCheckedNodes()
+      this.form.senderProvince = nodes[0].pathLabels[0]
+      this.form.senderCity = nodes[0].pathLabels[1]
+      this.form.senderDistrict = nodes[0].pathLabels[2]
+    },
+    getCitys() {
+      getCitys().then(res => {
+        this.loading = false
+        this.citys = res.data
+      })
+    },
+    /** 查询代服账户列表 */
+    getList() {
+      this.loading = true;
+      listAccount(this.queryParams).then(response => {
+        this.accountList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        dfAppKey: null,
+        dfAppsecret: null,
+        loginAccount: null,
+        callBackUrl: null,
+        monthlyCard: null,
+        expressProductCode: null,
+        senderName: null,
+        senderPhone: null,
+        senderProvince: null,
+        senderCity: null,
+        senderDistrict: null,
+        senderAddress: null,
+        createTime: null,
+        updateTime: 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.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加代服账户";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getAccount(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改代服账户";
+        this.form.cityIds = JSON.parse(response.data.cityIds)
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.cityIds = JSON.stringify(this.form.cityIds)
+          if (this.form.id != null) {
+            updateAccount(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addAccount(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除代服账户编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delAccount(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有代服账户数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportAccount(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

+ 378 - 0
src/views/his/divItem/index.vue

@@ -0,0 +1,378 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="85px">
+      <el-form-item label="订单号" prop="orderCode">
+        <el-input
+          v-model="queryParams.orderCode"
+          placeholder="请输入订单编号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="支付订单号" prop="payCode">
+        <el-input
+          v-model="queryParams.payCode"
+          placeholder="请输入支付订单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择" @keyup.enter.native="handleQuery" size="small">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="延迟分账" prop="isDelay">
+        <el-select v-model="queryParams.isDelay" placeholder="请选择" @keyup.enter.native="handleQuery" size="small">
+          <el-option
+            v-for="item in delayOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </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-row :gutter="10" class="mb8">
+      <!-- <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['his:divItem:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['his:divItem:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['his:divItem:remove']"
+        >删除</el-button>
+      </el-col> -->
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['his:divItem:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="divItemList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="订单编号" align="center" prop="orderCode" />
+      <el-table-column label="支付订单号" align="center" prop="payCode" />
+      <el-table-column label="支付状态" align="center" prop="isPay" >
+        <template slot-scope="scope">
+          <el-tag v-if="scope.row.isPay == 1">成功</el-tag>
+          <el-tag v-if="scope.row.isPay == 0">失败</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="延迟分账" align="center" prop="isDelay" >
+        <template slot-scope="scope">
+          <el-tag v-if="scope.row.isDelay == 1">是</el-tag>
+          <el-tag v-if="scope.row.isDelay == 0">否</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="分账明细" align="center" prop="detail" />
+      <el-table-column label="退款明细" align="center" prop="refundDetail" />
+      <el-table-column label="创建时间" align="center" prop="createTime" />
+      <el-table-column label="更新时间" align="center" prop="updateTime" />
+      <!-- <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"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['his:divItem:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['his:divItem:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column> -->
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改分账明细对话框 -->
+    <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="orderCode">
+          <el-input v-model="form.orderCode" placeholder="请输入订单编号" />
+        </el-form-item>
+        <el-form-item label="支付订单号" prop="payCode">
+          <el-input v-model="form.payCode" placeholder="请输入支付订单号" />
+        </el-form-item>
+        <el-form-item label="分账明细" prop="detail">
+          <el-input v-model="form.detail" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="是否支付成功 0否 1是" prop="isPay">
+          <el-input v-model="form.isPay" placeholder="请输入是否支付成功 0否 1是" />
+        </el-form-item>
+        <el-form-item label="是否延迟分账 0否 1是" prop="isDelay">
+          <el-input v-model="form.isDelay" placeholder="请输入是否延迟分账 0否 1是" />
+        </el-form-item>
+        <el-form-item label="是否退款 0否 1是" prop="isRefund">
+          <el-input v-model="form.isRefund" placeholder="请输入是否退款 0否 1是" />
+        </el-form-item>
+        <el-form-item label="退款明细" prop="refundDetail">
+          <el-input v-model="form.refundDetail" type="textarea" placeholder="请输入内容" />
+        </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>
+
+<script>
+import { listDivItem, getDivItem, delDivItem, addDivItem, updateDivItem, exportDivItem } from "@/api/his/divItem";
+
+export default {
+  name: "DivItem",
+  data() {
+    return {
+      delayOptions:[
+      {
+          value:0,
+          label:"否"
+        },
+        {
+          value:1,
+          label:"是"
+        }
+      ],
+      options:[
+        {
+          value:1,
+          label:"支付"
+        },
+        {
+          value:0,
+          label:"退款"
+        }
+      ],
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 分账明细表格数据
+      divItemList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        orderCode: null,
+        payCode: null,
+        detail: null,
+        isPay: null,
+        isDelay: 0,
+        isRefund: null,
+        refundDetail: null,
+        status:1
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        orderCode: [
+          { required: true, message: "订单编号不能为空", trigger: "blur" }
+        ],
+        payCode: [
+          { required: true, message: "支付订单号不能为空", trigger: "blur" }
+        ],
+        isPay: [
+          { required: true, message: "是否支付成功 0否 1是不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询分账明细列表 */
+    getList() {
+      this.loading = true;
+      var params = this.queryParams;
+      if(params.status == 1){
+        params.isPay = null;
+        params.isRefund = 0;
+      } else{
+        params.isPay = null;
+        params.isRefund = 1;
+      }
+      listDivItem(this.queryParams).then(response => {
+        this.divItemList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        orderCode: null,
+        payCode: null,
+        detail: null,
+        isPay: null,
+        isDelay: null,
+        isRefund: null,
+        createTime: null,
+        updateTime: null,
+        refundDetail: 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.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加分账明细";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getDivItem(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改分账明细";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateDivItem(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDivItem(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除分账明细编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delDivItem(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有分账明细数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportDivItem(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

文件差異過大導致無法顯示
+ 1155 - 8
src/views/hisStore/storeOrder/healthStoreList.vue


文件差異過大導致無法顯示
+ 1102 - 17
src/views/hisStore/storeOrder/index.vue


部分文件因文件數量過多而無法顯示