lilei 3 éve
szülő
commit
13db4e50df

+ 83 - 0
src/views/common/settleAccount.js

@@ -0,0 +1,83 @@
+import { settleAccountList } from '@/api/settleAcount'
+// 结算账户
+const SettleAccount = {
+  template: `
+        <a-select
+          :id="id"
+          :placeholder="placeholder"
+          allowClear
+          :value="defaultVal"
+          :showSearch="true"
+          @change="handleChange"
+          :filter-option="filterOption">
+          <a-select-option v-for="item in list" :key="item[defValKey]" :value="item[defValKey]">{{ item.accountName }}</a-select-option>
+        </a-select>
+    `,
+  props: {
+    value: {
+      type: String,
+      defatut: ''
+    },
+    id: {
+      type: String,
+      default: ''
+    },
+    defValKey: {
+      type: String,
+      default: 'settleAccountSn'
+    },
+    placeholder: {
+      type: String,
+      default: '请选择结算账户'
+    },
+    settleStyleSn:{
+      type: String,
+      default: ''
+    }
+  },
+  data() {
+    return {
+      defaultVal: this.value||undefined,
+      list: []
+    };
+  },
+  watch: {
+    value(newValue, oldValue) {
+      console.log(newValue)
+      this.defaultVal = newValue||undefined
+    },
+    settleStyleSn(a,b){
+      console.log(a)
+      this.getList()
+    }
+  },
+  mounted() {
+    // this.getList()
+  },
+  methods: {
+    filterOption (input, option) {
+      return (
+        option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+      )
+    },
+    handleChange(value) {
+      this.defaultVal = value;
+      const settleStyleName = this.list.find(item => item[this.defValKey] == value).accountName
+      this.$emit('input', value);
+      this.$emit('change', this.value, settleStyleName);
+    },
+    // 列表数据
+    getList () {
+      const _this = this
+      settleAccountList({settleStyleSn: this.settleStyleSn,pageNo:1,pageSize:500}).then(res => {
+        if (res.status == 200) {
+          _this.list = res.data || []
+        } else {
+          _this.list = []
+        }
+      })
+    },
+  },
+};
+
+export default SettleAccount

+ 3 - 2
src/views/common/settleStyle.js

@@ -1,5 +1,6 @@
 import { settleStyleQueryAll } from '@/api/settleStyle'
-const CustList = {
+// 结算方式
+const SettleStyle = {
   template: `
         <a-select
           :id="id"
@@ -71,4 +72,4 @@ const CustList = {
   },
 };
 
-export default CustList
+export default SettleStyle

+ 32 - 21
src/views/financialManagement/expenseManagement/edit.vue

@@ -44,11 +44,20 @@
           </a-form-model-item>
           <a-form-model-item label="结算方式" prop="settleStyleSn">
-            <a-select placeholder="请选择结算方式" allowClear v-model="form.settleStyleSn" @change="settleStyleChange">
-              <a-select-option v-for="item in settleStyleList" :key="item.settleStyleSn" :value="item.settleStyleSn">
-                {{ item.name }}
-              </a-select-option>
-            </a-select>
+            <settleStyle
+              id="expenseManagementEdit-settleStyleSn"
+              v-model="form.settleStyleSn"
+              @change="settleStyleChange"
+              placeholder="请选择结算方式">
+            </settleStyle>
+          </a-form-model-item>
+          <a-form-model-item v-if="enableFundAccount" label="结算账户" prop="settleAccountSn">
+            <settleAccount
+              id="expenseManagementEdit-settleAccountSn"
+              v-model="form.settleAccountSn"
+              :settleStyleSn="form.settleStyleSn"
+              placeholder="请选择结算账户">
+            </settleAccount>
           </a-form-model-item>
           <a-form-model-item label="关联单号" prop="bizNo">
             <a-input id="expenseManagementEdit-bizNo" :maxLength="30" v-model.trim="form.bizNo" placeholder="请输入关联单号(最多30个字符)" allowClear />
@@ -67,23 +76,25 @@
 
 <script>
 import { commonMixin } from '@/utils/mixin'
+import { mapActions } from 'vuex'
 import { STable, VSelect } from '@/components'
 import { settleExpenseSave, findExpenseDetail } from '@/api/settleExpense'
 import { costTypeAllQuery } from '@/api/costType'
-import { settleStyleQueryAll } from '@/api/settleStyle'
+import settleStyle from '@/views/common/settleStyle'
+import settleAccount from '@/views/common/settleAccount'
 export default {
   name: 'ExpenseManagementEdit',
-  components: { STable, VSelect },
+  components: { STable, VSelect, settleStyle, settleAccount },
   mixins: [commonMixin],
   data () {
     return {
       spinning: false,
+      enableFundAccount: false,
       formItemLayout: {
         labelCol: { span: 4 },
         wrapperCol: { span: 16 }
       },
       costTypeList: [], // 费用类型
-      settleStyleList: [], // 结算方式
       form: {
         expensesTypeSn1: '', // 费用类型
         expensesTypeSn2: '', // 费用类型1
@@ -93,27 +104,22 @@ export default {
         settleStyleSn: undefined, //  结算方式
         settleStyleName: '', // 结算方式名称
         bizNo: '', //  关联单号
-        remark: '' //  备注
+        remark: '', //  备注
+        settleAccountSn: undefined
       },
       rules: {
         costType: [{ required: true, message: '请选择费用类型', trigger: 'change' }],
         settleAmount: [{ required: true, message: '请输入费用金额', trigger: 'blur' }],
-        settleStyleSn: [{ required: true, message: '请选择结算方式', trigger: 'change' }]
+        settleStyleSn: [{ required: true, message: '请选择结算方式', trigger: 'change' }],
+        settleAccountSn: [{ required: true, message: '请选择结算账户', trigger: 'change' }]
       }
     }
   },
   methods: {
-    // 获取结算方式
-    getSettleStyle () {
-      settleStyleQueryAll().then(res => {
-        if (res.status == 200) {
-          this.settleStyleList = res.data
-        }
-      })
-    },
+    ...mapActions(['GetSettleAccountState']),
     // 选择结算方式
-    settleStyleChange (v) {
-      this.form.settleStyleName = this.settleStyleList.find(item => item.settleStyleSn == v).name
+    settleStyleChange (v, name) {
+      this.form.settleStyleName = name
     },
     //  递归函数
     recursionFun (data) {
@@ -199,7 +205,12 @@ export default {
         vm.getDetail()
       }
       vm.getCostTypeList()
-      vm.getSettleStyle()
+      // 结算账户状态查询
+      vm.GetSettleAccountState().then(res => {
+        if (res.status == 200) {
+          vm.enableFundAccount = res.data.functionEnableFlag
+        }
+      })
     }
   },
   mounted () {