|
@@ -0,0 +1,207 @@
|
|
|
+<template>
|
|
|
+ <zj-tab-page ref="tabPage" :defaultActives="[{ key: 'list', label: $route.meta.title + '-列表', essential: true }]">
|
|
|
+ <template slot-scope="{ activeKey, data }">
|
|
|
+ <template-page
|
|
|
+ v-if="activeKey == 'list'"
|
|
|
+ ref="pageRef"
|
|
|
+ :get-list="getList"
|
|
|
+ :table-attributes="tableAttributes"
|
|
|
+ :table-events="tableEvents"
|
|
|
+ :options-evens-group="optionsEvensGroup"
|
|
|
+ :moreParameters="moreParameters"
|
|
|
+ :column-parsing="columnParsing"
|
|
|
+ :operation="operation()"
|
|
|
+ :exportList="exportList"
|
|
|
+ >
|
|
|
+ </template-page>
|
|
|
+ <div v-if="~['remark'].indexOf(activeKey)">
|
|
|
+ <zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
|
|
|
+ <zj-form-module
|
|
|
+ title=""
|
|
|
+ label-width="100px"
|
|
|
+ :showPackUp="false"
|
|
|
+ :form-data="formData"
|
|
|
+ :form-items="formItems"
|
|
|
+ >
|
|
|
+ </zj-form-module>
|
|
|
+ </zj-form-container>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="mini" @click="data.removeTab()">取 消</el-button>
|
|
|
+ <el-button size="mini" @click="formConfirm(data.removeTab)" type="primary">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </zj-tab-page>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import TemplatePage from '@/components/template/template-page-1.vue'
|
|
|
+import import_mixin from '@/components/template/import_mixin.js'
|
|
|
+import { required, mobileRequired, mobile } from '@/components/template/rules_verify.js'
|
|
|
+import {
|
|
|
+ settlementOrderNewListPageV2,
|
|
|
+ settlementOrderNewPageExport,
|
|
|
+ settlementOrderNewDetail,
|
|
|
+ settlementOrderNewLineSettlement,
|
|
|
+ settlementOrderNewSettlement
|
|
|
+} from '@/api/settleManagElecpay'
|
|
|
+import operation_mixin from '@/components/template/operation_mixin.js'
|
|
|
+export default {
|
|
|
+ components: { TemplatePage },
|
|
|
+ mixins: [import_mixin, operation_mixin],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 表格属性
|
|
|
+ tableAttributes: {
|
|
|
+ // 启用勾选列
|
|
|
+ selectColumn: true,
|
|
|
+ selectable: this.selectable
|
|
|
+ },
|
|
|
+ // 表格事件
|
|
|
+ tableEvents: {
|
|
|
+ 'selection-change': this.selectionChange
|
|
|
+ },
|
|
|
+ // 勾选选中行
|
|
|
+ recordSelected: [],
|
|
|
+ /** 表单变量 */
|
|
|
+ formDialogType: 0,
|
|
|
+ formDialogTitles: ['备注'],
|
|
|
+ formDialog: false,
|
|
|
+ formData: {
|
|
|
+ remark: ''
|
|
|
+ },
|
|
|
+ formType: 'add',
|
|
|
+ formVisible: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ // 更多参数
|
|
|
+ moreParameters() {
|
|
|
+ return []
|
|
|
+ },
|
|
|
+ // 事件组合
|
|
|
+ optionsEvensGroup() {
|
|
|
+ return [
|
|
|
+ [
|
|
|
+ [
|
|
|
+ this.optionsEvensAuth('batchLedger', {
|
|
|
+ click: () => {
|
|
|
+ if (this.recordSelected.length === 0) {
|
|
|
+ this.$message.warning('请勾选数据')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ settlementOrderNewSettlement({
|
|
|
+ id: this.recordSelected.map(item => item.id).join(',')
|
|
|
+ }).then(res => {
|
|
|
+ this.$message({ type: 'success', message: `结算成功!` })
|
|
|
+ this.$refs.pageRef.refreshList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ formItems() {
|
|
|
+ return []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 列表请求函数
|
|
|
+ getList: settlementOrderNewListPageV2,
|
|
|
+ // 列表导出函数
|
|
|
+ exportList: settlementOrderNewPageExport,
|
|
|
+ // 表格列解析渲染数据更改
|
|
|
+ columnParsing(item, defaultData) {
|
|
|
+ return defaultData
|
|
|
+ },
|
|
|
+ // 监听勾选变化
|
|
|
+ selectionChange(data) {
|
|
|
+ this.recordSelected = data
|
|
|
+ },
|
|
|
+ selectable(row, index) {
|
|
|
+ return ['WAIT'].includes(Object.entries(row.selectMapData.status).find(([key, val]) => val == row.status)?.[0])
|
|
|
+ },
|
|
|
+ // 表格操作列
|
|
|
+ operation() {
|
|
|
+ return this.operationBtn({
|
|
|
+ details: {
|
|
|
+ click: ({ row, index, column }) => {
|
|
|
+ console.log(row)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ settle: {
|
|
|
+ conditions: ({ row, index, column }) => {
|
|
|
+ return row.status === 'WAIT'
|
|
|
+ },
|
|
|
+ btnType: 'text',
|
|
|
+ prompt: '是否确定结算?',
|
|
|
+ click: ({ row, index, column }) => {
|
|
|
+ settlementOrderNewSettlement({
|
|
|
+ id: row.id
|
|
|
+ }).then(res => {
|
|
|
+ this.$message({ type: 'success', message: `结算成功!` })
|
|
|
+ this.$refs.pageRef.refreshList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ offlineSettle: {
|
|
|
+ conditions: ({ row, index, column }) => {
|
|
|
+ return row.status === 'YC'
|
|
|
+ },
|
|
|
+ btnType: 'text',
|
|
|
+ prompt: '是否确定结算?',
|
|
|
+ click: ({ row, index, column }) => {
|
|
|
+ settlementOrderNewLineSettlement({
|
|
|
+ id: row.id
|
|
|
+ }).then(res => {
|
|
|
+ this.$message({ type: 'success', message: `结算成功!` })
|
|
|
+ this.$refs.pageRef.refreshList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ openForm(type) {
|
|
|
+ this.$refs.tabPage.addTab({
|
|
|
+ // 对应显示的模块
|
|
|
+ activeKey: type,
|
|
|
+ // 唯一标识
|
|
|
+ key: type,
|
|
|
+ // 页签名称
|
|
|
+ label: { remark: '备注' }[type],
|
|
|
+ // 打开时事件
|
|
|
+ triggerEvent: () => {
|
|
|
+ this.formCancel()
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.formType = type
|
|
|
+ this.formVisible = true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 关闭时事件
|
|
|
+ closeEvent: () => {
|
|
|
+ this.formCancel()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ formCancel() {
|
|
|
+ this.formVisible = false
|
|
|
+ this.$refs?.formRef?.resetFields()
|
|
|
+ this.$data.formRef = this.$options.data().formRef
|
|
|
+ },
|
|
|
+ formConfirm(cancel) {
|
|
|
+ this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
|
|
|
+ if (valid) {
|
|
|
+ ;[saveRemark][this.formDialogType](this.formData).then(res => {
|
|
|
+ this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
|
|
|
+ cancel('list')
|
|
|
+ this.$refs.pageRef.refreshList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped></style>
|