Prechádzať zdrojové kódy

修改业务审核 交收

huangbin 4 rokov pred
rodič
commit
29296656c0

+ 7 - 2
src/services/go/ermcp/business-review/index.ts

@@ -1,11 +1,12 @@
 /** ================================= 业务审核 ================================**/
+import { getUserId } from '@/services/bus/account';
+import { commonSearch_go } from "@/services/go";
 import {
     QryBusinessDjRsp,
     QryBussinessJsRsp,
     QueryBusinessDjReq,
     QueryBusinessJsReq
 } from "@/services/go/ermcp/business-review/interface";
-import {commonSearch_go} from "@/services/go";
 
 /**
  * 查询业务管理(结算)(对应菜单:业务管理/结算) /Ermcp/QueryBusinessJs
@@ -24,7 +25,11 @@ export function QueryBusinessJs(req: QueryBusinessJsReq): Promise<QryBussinessJs
  * @constructor
  */
 export function QueryBusinessDj(req: QueryBusinessDjReq): Promise<QryBusinessDjRsp[]> {
-    return commonSearch_go('/Ermcp/QueryBusinessDj', req).catch((err) => {
+    const param = {
+        UserId: getUserId(),
+    }
+    Object.assign(param, req)
+    return commonSearch_go('/Ermcp/QueryBusinessDj', param).catch((err) => {
         throw new Error(`业务管理 - 点价: ${err.message}`);
     });
 }

+ 75 - 76
src/services/go/ermcp/business-review/interface.ts

@@ -1,7 +1,7 @@
 /**
  * 查询业务管理 业务管理 - 结算  请求
  */
-export interface QueryBusinessJsReq{
+export interface QueryBusinessJsReq {
     UserId: number
     relatedid?: string  // 现货合同ID, 不填则查所有
     operateapplyid?: string  // 操作申请id
@@ -11,51 +11,50 @@ export interface QueryBusinessJsReq{
 /**
  * 查询业务管理 业务管理 - 结算 返回
  */
-export interface QryBussinessJsRsp{
-    addmargin	:number;//追加保证金(非必填)
-    applyid	:string;//申请人
-    applyname	:string;//申请人名称
-    applystatus	:number;//申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
-    applytime	:string;//申请时间
-    attachurl	:string;//附件
-    auditid	:string;//审核人ID
-    auditname	:string;//审核人名称
-    audittime	:string;//审核时间
-    buyusername	:string;//采购方名称
-    contractno	:string;//合同编号
-    contractstatus	:number;//合同状态- number;
-//:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
-    contracttype	:number;//现货合同类型 - 1:采购 -1:销售
-    decmargin	:number;//减少保证金(非必填)
-    deliverygoodscode	:string;//现货品种代码
-    deliverygoodsid	:number;//现货商品ID
-    deliverygoodsname	:string;//现货品种名称
-    enumdicname	:string;//单位名称
-    goodscode	:string;//点价合约
-    goodsname	:string;//商品名称
-    operateapplyid	:string;//操作申请ID(6number;
-//3+Unix秒时间戳(1number;
-//位)+xxxxxx)
-    operateapplytype	:number;//操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
-    pricemove	:number;//升贴水
-    pricetype	:number;//定价类型 - 1:一口价 2:点价 3:暂定价
-    reckonadjustamount	:number;//结算调整金额(非必填)
-    reckonosamount	:number;//结算溢短金额(非必填)
-    reckonotheramount	:number;//结算其他费用(非必填)
-    reckonrealqty	:number;//结算实际数量(非必填)
-    relatedid	:string;//现货合同ID
-    sellusername	:string;//销售方名字
-    userid	:number;//用户ID
-    wrstandardcode	:string;//品类代码
-    wrstandardid	:number;//品类id
-    wrstandardname	:string;//品类名称
+export interface QryBussinessJsRsp {
+    addmargin: number;//追加保证金(非必填)
+    applyid: string;//申请人
+    applyname: string;//申请人名称
+    applystatus: number;//申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
+    applytime: string;//申请时间
+    attachurl: string;//附件
+    auditid: string;//审核人ID
+    auditname: string;//审核人名称
+    audittime: string;//审核时间
+    buyusername: string;//采购方名称
+    contractno: string;//合同编号
+    contractstatus: number;//合同状态- number;
+    //:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
+    contracttype: number;//现货合同类型 - 1:采购 -1:销售
+    decmargin: number;//减少保证金(非必填)
+    deliverygoodscode: string;//现货品种代码
+    deliverygoodsid: number;//现货商品ID
+    deliverygoodsname: string;//现货品种名称
+    enumdicname: string;//单位名称
+    goodscode: string;//点价合约
+    goodsname: string;//商品名称
+    operateapplyid: string;//操作申请ID(6number;
+    //3+Unix秒时间戳(1number;
+    //位)+xxxxxx)
+    operateapplytype: number;//操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
+    pricemove: number;//升贴水
+    pricetype: number;//定价类型 - 1:一口价 2:点价 3:暂定价
+    reckonadjustamount: number;//结算调整金额(非必填)
+    reckonosamount: number;//结算溢短金额(非必填)
+    reckonotheramount: number;//结算其他费用(非必填)
+    reckonrealqty: number;//结算实际数量(非必填)
+    relatedid: string;//现货合同ID
+    sellusername: string;//销售方名字
+    userid: number;//用户ID
+    wrstandardcode: string;//品类代码
+    wrstandardid: number;//品类id
+    wrstandardname: string;//品类名称
 }
 
 /**
  * 查询业务管理(点价)(对应菜单:业务管理/点价) 请求
  */
-export interface QueryBusinessDjReq{
-    UserId: number
+export interface QueryBusinessDjReq {
     relatedid?: string  // 现货合同ID, 不填则查所有
     applystatus?: string  // 申请状态(逗号隔开) 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
 }
@@ -63,40 +62,40 @@ export interface QueryBusinessDjReq{
 /**
  * 查询业务管理(点价)(对应菜单:业务管理/点价)
  */
-export interface QryBusinessDjRsp{
-    amount	:number;//点价金额=(点价价格+升贴水)点价数量
-    applyid	:string;//申请人
-    applyname	:string;//申请人名称
-    applystatus	:number;//申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
-    applytime	:string;//申请时间
-    attachurl	:string;//附件
-    auditid	:string;//审核人ID
-    auditname	:string;//审核人名称
-    audittime	:string;//审核时间
-    buyusername	:string;//采购方名称
-    contractno	:string;//合同编号
-    contractstatus	:number;//合同状态- number;
-//:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
-    contracttype	:number;//现货合同类型 - 1:采购 -1:销售
-    deliverygoodscode	:string;//现货品种代码
-    deliverygoodsid	:number;//现货商品ID
-    deliverygoodsname	:string;//现货品种名称
-    enumdicname	:string;//单位名称
-    goodscode	:string;//点价合约
-    goodsname	:string;//商品名称
-    operateapplyid	:string;//操作申请ID(6number;
-//3+Unix秒时间戳(1number;
-//位)+xxxxxx)
-    operateapplytype	:number;//操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
-    pricedPrice	:number;//点价价格(非必填)
-    pricedQty	:number;//点价数量(非必填)
-    pricemove	:number;//升贴水
-    pricetype	:number;//定价类型 - 1:一口价 2:点价 3:暂定价
-    relatedid	:string;//现货合同ID
-    sellusername	:string;//销售方名字
-    userid	:number;//用户ID
-    wrstandardcode	:string;//品类代码
-    wrstandardid	:number;//品类id
-    wrstandardname	:string;//品类名称
+export interface QryBusinessDjRsp {
+    amount: number;//点价金额=(点价价格+升贴水)点价数量
+    applyid: string;//申请人
+    applyname: string;//申请人名称
+    applystatus: number;//申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
+    applytime: string;//申请时间
+    attachurl: string;//附件
+    auditid: string;//审核人ID
+    auditname: string;//审核人名称
+    audittime: string;//审核时间
+    buyusername: string;//采购方名称
+    contractno: string;//合同编号
+    contractstatus: number;//合同状态- number;
+    //:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
+    contracttype: number;//现货合同类型 - 1:采购 -1:销售
+    deliverygoodscode: string;//现货品种代码
+    deliverygoodsid: number;//现货商品ID
+    deliverygoodsname: string;//现货品种名称
+    enumdicname: string;//单位名称
+    goodscode: string;//点价合约
+    goodsname: string;//商品名称
+    operateapplyid: string;//操作申请ID(6number;
+    //3+Unix秒时间戳(1number;
+    //位)+xxxxxx)
+    operateapplytype: number;//操作申请类型 - 1:点价 2:结算登记 3:款项登记 4:发票登记
+    pricedPrice: number;//点价价格(非必填)
+    pricedQty: number;//点价数量(非必填)
+    pricemove: number;//升贴水
+    pricetype: number;//定价类型 - 1:一口价 2:点价 3:暂定价
+    relatedid: string;//现货合同ID
+    sellusername: string;//销售方名字
+    userid: number;//用户ID
+    wrstandardcode: string;//品类代码
+    wrstandardid: number;//品类id
+    wrstandardname: string;//品类名称
 }
 

+ 141 - 0
src/views/manage/business-review/components/filterTable/index.vue

@@ -0,0 +1,141 @@
+<template>
+  <!-- 过滤客户资料表格 -->
+  <div class="filter-custom-table">
+    <a-select label-in-value
+              class="conditionSelect"
+              style="width: 120px"
+              v-model:value="contracttype"
+              placeholder="全部合同类型"
+              @change="handleChange">
+      <a-select-option value="1">采购</a-select-option>
+      <a-select-option value="-1">销售</a-select-option>
+    </a-select>
+    <a-input v-model:value="name"
+             class="tableConditionInput"
+             placeholder="模糊搜索对手方" />
+    <a-input v-model:value="contractno"
+             class="tableConditionInput"
+             placeholder="模糊搜索合同编号" />
+    <a-input v-model:value="deliverygoodsname"
+             class="tableConditionInput"
+             placeholder="模糊搜索现货品种" />
+    <a-button class="selectBtn"
+              @click="search">查询</a-button>
+    <a-button class="selectBtn"
+              @click="reset">重置</a-button>
+    <slot></slot>
+  </div>
+</template>
+
+<script lang="ts">
+import { defineComponent, ref, SetupContext } from 'vue';
+
+// 搜索
+function handleSearch(context: SetupContext) {
+    const contracttype = ref<string | undefined>(undefined);
+    const name = ref<string>('');
+    const contractno = ref<string>('');
+    const deliverygoodsname = ref<string>('');
+
+    interface Value {
+        key: string;
+        value: string;
+    }
+    let useType = '';
+    function handleChange(value: Value) {
+        useType = value.value;
+        search();
+    }
+
+    function search() {
+        const result = {
+            contracttype: [useType],
+            contractno: [contractno.value],
+            deliverygoodsname: [deliverygoodsname.value],
+            name: [name.value],
+        };
+        context.emit('search', result);
+    }
+    function reset() {
+        contracttype.value = undefined;
+        contractno.value = '';
+        name.value = '';
+        deliverygoodsname.value = '';
+        search();
+    }
+
+    return { contracttype, name, contractno, deliverygoodsname, search, reset, handleChange };
+}
+
+export default defineComponent({
+    name: 'purchase_pending-filter-table',
+    components: {},
+    setup(props, context) {
+        return {
+            ...handleSearch(context),
+        };
+    },
+});
+</script>
+
+<style lang="less">
+.filter-custom-table {
+    width: 100%;
+    display: inline-flex;
+    padding-top: 9px;
+    padding-bottom: 6px;
+    .ant-select-single:not(.ant-select-customize-input) {
+        margin-right: 10px;
+        // background: #252D34;
+        // .rounded-corners(3px);
+        .ant-select-selector {
+            height: 30px;
+            padding: 0 8px;
+            background: @m-grey9;
+            border: none;
+            .rounded-corners(3px);
+            color: @m-grey10;
+            .ant-select-arrow {
+                right: 8px;
+                color: @m-grey1;
+            }
+        }
+        .ant-select-arrow {
+            color: @m-grey1;
+        }
+        .ant-select-selection-item {
+            color: @m-white1;
+        }
+    }
+    .conditionSelect + .conditionSelect {
+        margin-left: 10px;
+    }
+}
+.selectBtn.ant-btn {
+    margin-left: 10px;
+    width: 80px;
+    height: 30px;
+    line-height: 31px;
+    text-align: center;
+    background: linear-gradient(0deg, @m-grey15 0%, @m-grey16 98%);
+    border: 0;
+    color: @m-white0;
+    font-size: 14px;
+    .rounded-corners(3px);
+    &:hover,
+    &:focus {
+        background: linear-gradient(0deg, @m-grey15-hover 0%, @m-grey16-hover 98%);
+        color: rgba(@m-white0, 0.8);
+        border: 0;
+    }
+}
+.operBtn.ant-btn:extend(.selectBtn.ant-btn) {
+    background: linear-gradient(0deg, @m-blue6 0%, @m-blue7 99%);
+    &:hover,
+    &:focus {
+        background: linear-gradient(0deg, @m-blue6-hover 0%, @m-blue7-hover 99%);
+        color: rgba(@m-white0, 0.8);
+        border: 0;
+    }
+}
+</style>;

+ 10 - 0
src/views/manage/business-review/components/index.ts

@@ -0,0 +1,10 @@
+import Filter from './filterTable/index.vue';
+import SettlementAudit from './settlementAudit/index.vue';
+import SettlementCancel from './settlementCancel/index.vue';
+import SettlementDetail from './settlementDetail/index.vue';
+import SomepriceAudit from './somepriceAudit/index.vue';
+import SomepriceCancel from './somepriceCancel/index.vue';
+import SomepriceDetail from './somepriceDetail/index.vue';
+
+export { SettlementDetail, SettlementAudit, SettlementCancel, Filter, SomepriceDetail, SomepriceAudit, SomepriceCancel };
+

+ 67 - 0
src/views/manage/business-review/components/settlementAudit/index.vue

@@ -0,0 +1,67 @@
+<template>
+  <!-- 交收审核-->
+  <a-modal class="business_review_settlement_audit custom-detail"
+           title="交收审核"
+           v-model:visible="visible"
+           centered
+           :maskClosable="maskClosableFlag"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading.loading"
+                @click="submit">关闭</a-button>
+    </template>
+
+  </a-modal>
+</template>
+
+<script lang="ts">
+import { defineComponent, PropType, reactive, ref, watchEffect } from 'vue';
+import { closeModal } from '@/common/setup/modal/index';
+import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
+import { mergeObj } from '@/utils/objHandle';
+import { getStatusName } from '@/views/information/custom/setup';
+import { formatValue, formatTime } from '@/common/methods';
+
+export default defineComponent({
+    name: 'business_review_settlement_audit',
+    components: {},
+    props: {
+        selectedRow: {
+            type: Object as PropType<QueryCustomInfoType>,
+            default: {},
+        },
+    },
+    setup(props) {
+        const { visible, cancel } = closeModal('business_review_settlement_audit');
+        const loading = ref<boolean>(false);
+        const maskClosableFlag = ref<boolean>(false);
+        function submit() {
+            loading.value = true;
+            setTimeout(() => {
+                loading.value = false;
+                cancel();
+            }, 2000);
+        }
+        return {
+            visible,
+            cancel,
+            submit,
+            loading,
+            formatValue,
+            getStatusName,
+            maskClosableFlag,
+        };
+    },
+});
+</script>
+
+<style lang="less">
+.business_review_settlement_audit {
+    .ant-form.inlineForm {
+        margin-top: 20px;
+    }
+}
+</style>;

+ 67 - 0
src/views/manage/business-review/components/settlementCancel/index.vue

@@ -0,0 +1,67 @@
+<template>
+  <!-- 撤销交收登记-->
+  <a-modal class="business_review_settlement_cancel custom-detail"
+           title="撤销交收登记"
+           v-model:visible="visible"
+           centered
+           :maskClosable="maskClosableFlag"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading.loading"
+                @click="submit">关闭</a-button>
+    </template>
+
+  </a-modal>
+</template>
+
+<script lang="ts">
+import { defineComponent, PropType, reactive, ref, watchEffect } from 'vue';
+import { closeModal } from '@/common/setup/modal/index';
+import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
+import { mergeObj } from '@/utils/objHandle';
+import { getStatusName } from '@/views/information/custom/setup';
+import { formatValue, formatTime } from '@/common/methods';
+
+export default defineComponent({
+    name: 'business_review_settlement_cancel',
+    components: {},
+    props: {
+        selectedRow: {
+            type: Object as PropType<QueryCustomInfoType>,
+            default: {},
+        },
+    },
+    setup(props) {
+        const { visible, cancel } = closeModal('business_review_settlement_cancel');
+        const loading = ref<boolean>(false);
+        const maskClosableFlag = ref<boolean>(false);
+        function submit() {
+            loading.value = true;
+            setTimeout(() => {
+                loading.value = false;
+                cancel();
+            }, 2000);
+        }
+        return {
+            visible,
+            cancel,
+            submit,
+            loading,
+            formatValue,
+            getStatusName,
+            maskClosableFlag,
+        };
+    },
+});
+</script>
+
+<style lang="less">
+.business_review_settlement_cancel {
+    .ant-form.inlineForm {
+        margin-top: 20px;
+    }
+}
+</style>;

+ 67 - 0
src/views/manage/business-review/components/settlementDetail/index.vue

@@ -0,0 +1,67 @@
+<template>
+  <!-- 交收记录详情-->
+  <a-modal class="settlement-detail custom-detail"
+           title="交收记录详情"
+           v-model:visible="visible"
+           centered
+           :maskClosable="maskClosableFlag"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading.loading"
+                @click="submit">关闭</a-button>
+    </template>
+
+  </a-modal>
+</template>
+
+<script lang="ts">
+import { defineComponent, PropType, reactive, ref, watchEffect } from 'vue';
+import { closeModal } from '@/common/setup/modal/index';
+import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
+import { mergeObj } from '@/utils/objHandle';
+import { getStatusName } from '@/views/information/custom/setup';
+import { formatValue, formatTime } from '@/common/methods';
+
+export default defineComponent({
+    name: 'settlement-detail',
+    components: {},
+    props: {
+        selectedRow: {
+            type: Object as PropType<QueryCustomInfoType>,
+            default: {},
+        },
+    },
+    setup(props) {
+        const { visible, cancel } = closeModal('detail');
+        const loading = ref<boolean>(false);
+        const maskClosableFlag = ref<boolean>(false);
+        function submit() {
+            loading.value = true;
+            setTimeout(() => {
+                loading.value = false;
+                cancel();
+            }, 2000);
+        }
+        return {
+            visible,
+            cancel,
+            submit,
+            loading,
+            formatValue,
+            getStatusName,
+            maskClosableFlag,
+        };
+    },
+});
+</script>
+
+<style lang="less">
+.custom-detail {
+    .ant-form.inlineForm {
+        margin-top: 20px;
+    }
+}
+</style>;

+ 66 - 0
src/views/manage/business-review/components/somepriceAudit/index.vue

@@ -0,0 +1,66 @@
+<template>
+  <!-- 点价审核-->
+  <a-modal class="business_review_someprice_audit custom-detail"
+           title="点价审核"
+           v-model:visible="visible"
+           centered
+           :maskClosable="maskClosableFlag"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading.loading"
+                @click="submit">关闭</a-button>
+    </template>
+
+  </a-modal>
+</template>
+
+<script lang="ts">
+import { defineComponent, PropType, ref } from 'vue';
+import { closeModal } from '@/common/setup/modal/index';
+import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
+import { getStatusName } from '@/views/information/custom/setup';
+import { formatValue, formatTime } from '@/common/methods';
+
+export default defineComponent({
+    name: 'business_review_someprice_audit',
+    components: {},
+    props: {
+        selectedRow: {
+            type: Object as PropType<QueryCustomInfoType>,
+            default: {},
+        },
+    },
+    setup(props) {
+        const { visible, cancel } = closeModal('business_review_someprice_audit');
+        const loading = ref<boolean>(false);
+        const maskClosableFlag = ref<boolean>(false);
+        function submit() {
+            loading.value = true;
+            setTimeout(() => {
+                loading.value = false;
+                cancel();
+            }, 2000);
+        }
+        return {
+            visible,
+            cancel,
+            submit,
+            loading,
+            formatValue,
+            getStatusName,
+            maskClosableFlag,
+        };
+    },
+});
+</script>
+
+<style lang="less">
+.business_review_someprice_audit {
+    .ant-form.inlineForm {
+        margin-top: 20px;
+    }
+}
+</style>;

+ 67 - 0
src/views/manage/business-review/components/somepriceCancel/index.vue

@@ -0,0 +1,67 @@
+<template>
+  <!-- 撤销点价登记-->
+  <a-modal class="business_review_someprice_cancel custom-detail"
+           title="撤销点价登记"
+           v-model:visible="visible"
+           centered
+           :maskClosable="maskClosableFlag"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading.loading"
+                @click="submit">关闭</a-button>
+    </template>
+
+  </a-modal>
+</template>
+
+<script lang="ts">
+import { defineComponent, PropType, reactive, ref, watchEffect } from 'vue';
+import { closeModal } from '@/common/setup/modal/index';
+import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
+import { mergeObj } from '@/utils/objHandle';
+import { getStatusName } from '@/views/information/custom/setup';
+import { formatValue, formatTime } from '@/common/methods';
+
+export default defineComponent({
+    name: 'business_review_someprice_cancel',
+    components: {},
+    props: {
+        selectedRow: {
+            type: Object as PropType<QueryCustomInfoType>,
+            default: {},
+        },
+    },
+    setup(props) {
+        const { visible, cancel } = closeModal('business_review_someprice_cancel');
+        const loading = ref<boolean>(false);
+        const maskClosableFlag = ref<boolean>(false);
+        function submit() {
+            loading.value = true;
+            setTimeout(() => {
+                loading.value = false;
+                cancel();
+            }, 2000);
+        }
+        return {
+            visible,
+            cancel,
+            submit,
+            loading,
+            formatValue,
+            getStatusName,
+            maskClosableFlag,
+        };
+    },
+});
+</script>
+
+<style lang="less">
+.business_review_someprice_cancel {
+    .ant-form.inlineForm {
+        margin-top: 20px;
+    }
+}
+</style>;

+ 67 - 0
src/views/manage/business-review/components/somepriceDetail/index.vue

@@ -0,0 +1,67 @@
+<template>
+  <!-- 点价记录详情-->
+  <a-modal class="someprice-detail custom-detail"
+           title="点价记录详情"
+           v-model:visible="visible"
+           centered
+           :maskClosable="maskClosableFlag"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading.loading"
+                @click="submit">关闭</a-button>
+    </template>
+
+  </a-modal>
+</template>
+
+<script lang="ts">
+import { defineComponent, PropType, reactive, ref, watchEffect } from 'vue';
+import { closeModal } from '@/common/setup/modal/index';
+import { QueryCustomInfoType } from '@/services/go/ermcp/customInfo/interface';
+import { mergeObj } from '@/utils/objHandle';
+import { getStatusName } from '@/views/information/custom/setup';
+import { formatValue, formatTime } from '@/common/methods';
+
+export default defineComponent({
+    name: 'someprice-detail',
+    components: {},
+    props: {
+        selectedRow: {
+            type: Object as PropType<QueryCustomInfoType>,
+            default: {},
+        },
+    },
+    setup(props) {
+        const { visible, cancel } = closeModal('detail');
+        const loading = ref<boolean>(false);
+        const maskClosableFlag = ref<boolean>(false);
+        function submit() {
+            loading.value = true;
+            setTimeout(() => {
+                loading.value = false;
+                cancel();
+            }, 2000);
+        }
+        return {
+            visible,
+            cancel,
+            submit,
+            loading,
+            formatValue,
+            getStatusName,
+            maskClosableFlag,
+        };
+    },
+});
+</script>
+
+<style lang="less">
+.custom-detail {
+    .ant-form.inlineForm {
+        margin-top: 20px;
+    }
+}
+</style>;

+ 40 - 23
src/views/manage/business-review/list/settlement/index.vue

@@ -2,9 +2,9 @@
   <!-- 管理-业务审核-交收 -->
   <div class="business-review-js"
        :loading="loading">
-    <filterCustomTable @search="search">
+    <Filter @search="search">
       <BtnList :btnList="commonBtn" />
-    </filterCustomTable>
+    </Filter>
     <contextMenu :contextMenuList="forDataBtn">
       <a-table :columns="columns"
                class="topTable"
@@ -25,44 +25,61 @@
         </template>
       </a-table>
     </contextMenu>
+    <SettlementDetail />
+    <SettlementAudit />
+    <SettlementCancel />
   </div>
 </template>
 
 <script lang="ts">
-import { defineComponent } from 'vue';
-import { initData } from '@/common/methods';
-import filterCustomTable from '@/views/information/warehouse-info/compoments/filterTable/index.vue';
-import { getTableList } from './setup';
-import { getBtnList } from '@/common/setup/contextMenu/index';
-import contextMenu from '@/common/components/contextMenu/index.vue';
-import { handleTableEvent } from '@/common/setup/event/index';
-import BtnList from '@/common/components/buttonList/index.vue';
+import { defineComponent, initData, getTableColumns, getTableEvent, getBtnList, contextMenu, BtnList } from '@/common/export/table';
+
+import { SettlementDetail, SettlementAudit, SettlementCancel, Filter } from '../../components';
+
+import { queryTableList, getFilterTableCB, QryBusinessDjRsp } from './setup';
 
 export default defineComponent({
-    name: 'warehouse-info-normal',
+    name: 'business-review-js',
     components: {
         contextMenu,
-        filterCustomTable,
+        Filter,
         BtnList,
+        SettlementDetail,
+        SettlementAudit,
+        SettlementCancel,
     },
     setup() {
-        const { tableList, actionQuery, columns, filteredInfo, getColumns, search, loading } = getTableList();
-        const { commonBtn, forDataBtn } = getBtnList('warehouse_info_normal', true);
-
+        // 表头数据
+        const { columns, registerColumn, updateColumn, filteredInfo } = getTableColumns();
+        // 表格事件
+        const { expandedRowKeys, selectedRow, Rowclick } = getTableEvent<QryBusinessDjRsp>({});
+        // 表格操作按钮列表
+        const { commonBtn, forDataBtn } = getBtnList('business_review_settlement', true);
+        // 表格列表数据
+        const { loading, tableList, queryTable } = queryTableList({});
         initData(() => {
-            actionQuery();
-            getColumns();
+            // 获取列表数据
+            queryTable();
+            // 注册表头信息 过滤
+            registerColumn('table_pcweb_business_aduit_js', getFilterTableCB);
         });
-
+        // 查询
+        function search(value: any) {
+            filteredInfo.value = value;
+            // 更新表信息
+            updateColumn();
+        }
         return {
-            tableList,
-            filteredInfo,
             columns,
-            search,
-            loading,
+            filteredInfo,
+            expandedRowKeys,
+            selectedRow,
+            Rowclick,
             commonBtn,
             forDataBtn,
-            ...handleTableEvent(),
+            loading,
+            tableList,
+            search,
         };
     },
 });

+ 49 - 53
src/views/manage/business-review/list/settlement/setup.ts

@@ -1,54 +1,21 @@
-import { ColumnType, getTableHead } from '@/common/methods/table';
-import { QueryBusinessJs } from '@/services/go/ermcp/business-review/index';
-import { getUserId } from '@/services/bus/account';
-import { QryBussinessJsRsp } from '@/services/go/ermcp/business-review/interface';
+import { Column, ColumnType } from '@/common/setup/table/index';
+import { QueryBusinessDj } from '@/services/go/ermcp/business-review';
+import { QryBusinessDjRsp, QueryBusinessDjReq } from '@/services/go/ermcp/business-review/interface';
 import { message } from 'ant-design-vue';
 import { ref } from 'vue';
 
-// 管理-业务审核-点价
-export function getTableList() {
-    // 表格数据
-    const tableList = ref<QryBussinessJsRsp[]>([]);
-    // 表头数据
-    const columns = ref<ColumnType[]>([]);
-    // 过滤项
-    const filteredInfo = ref();
+/**
+ * 获取表格列表数据
+ * @param type 
+ * @returns 
+ */
+export function queryTableList(type: QueryBusinessDjReq) {
+    // 加载状态
     const loading = ref<boolean>(false);
-    
-    // 获取表头
-    function getColumns() {
-        const list = getTableHead('table_pcweb_business_aduit_js');
-        const filtered = filteredInfo.value || {};
-        columns.value.length = 0;
-        list.forEach((e, i) => {
-            const { columnfield, columntitle, aligntype } = e;
-            const item: ColumnType = {
-                key: String(i),
-                dataIndex: columnfield, // 表格数据对应的key
-                title: columntitle,
-                align: aligntype === 1 ? 'center' : aligntype === 2 ? 'left' : 'right',
-                slots: { customRender: columnfield },
-            };
-            // 以下添加过滤数据对应的方法
-            // if (e.columnfield === 'warehousetype') {
-            //     item.onFilter = (value: string, record: QryBusinessDjRsp) => String(record.warehousetype).includes(String(value));
-            //     item.filteredValue = filtered.warehousetype || null;
-            // }
-            // if (e.columnfield === 'warehousename') {
-            //     item.onFilter = (value: string, record: QryBusinessDjRsp) => record.warehousename.includes(value);
-            //     item.filteredValue = filtered.warehousename || null;
-            // }
-            // if (e.columnfield === 'address') {
-            //     item.onFilter = (value: string, record: QryBusinessDjRsp) => record.address.includes(value);
-            //     item.filteredValue = filtered.address || null;
-            // }
-            columns.value.push(item);
-        });
-    }
-    // 查询列表
-    function actionQuery() {
-        loading.value = true;
-        QueryBusinessJs({UserId: getUserId()})
+    // 表格数据
+    const tableList = ref<QryBusinessDjRsp[]>([]);
+    function queryTable() {
+        QueryBusinessDj(type)
             .then((res) => {
                 tableList.value = res.map((e, i) => {
                     return { ...e, key: String(i) };
@@ -61,11 +28,40 @@ export function getTableList() {
                 loading.value = false;
             });
     }
-    // 查询
-    function search(value: any) {
-        filteredInfo.value = value;
-        getColumns();
+    return { loading, tableList, queryTable }
+}
+
+/**
+ * 过滤表格的回调函数
+ * @param e 
+ * @param item 
+ * @param filtered 
+ */
+export function getFilterTableCB(e: Column, item: ColumnType, filtered: any) {
+    // 以下添加过滤数据对应的方法
+    if (e.columnfield === 'contracttype') {
+        item.onFilter = (value: string, record: QryBusinessDjRsp) => String(record.contracttype).includes(String(value));
+        item.filteredValue = filtered.contracttype || null;
+    }
+    if (e.columnfield === 'buyusernameOrsellusername') {
+        item.onFilter = (value: string, record: QryBusinessDjRsp) => {
+            const { contracttype, buyusername, sellusername } = record
+            if (contracttype === 1) {   // 采购
+                return sellusername.includes(value)
+            } else {
+                return buyusername.includes(value)
+            }
+        };
+        item.filteredValue = filtered.buyusernameOrsellusername || null;
+    }
+    if (e.columnfield === 'contractno') {
+        item.onFilter = (value: string, record: QryBusinessDjRsp) => record.contractno.includes(value);
+        item.filteredValue = filtered.contractno || null;
+    }
+    if (e.columnfield === 'deliverygoodsname') {
+        item.onFilter = (value: string, record: QryBusinessDjRsp) => record.deliverygoodsname.includes(value);
+        item.filteredValue = filtered.deliverygoodsname || null;
     }
+}
 
-    return { tableList, actionQuery, columns, filteredInfo, getColumns, search, loading, };
-}
+export type { QryBusinessDjRsp };

+ 2 - 3
src/views/manage/business-review/list/someprice/setup.ts

@@ -1,6 +1,5 @@
 import { ColumnType, getTableHead } from '@/common/methods/table';
 import { QueryBusinessDj } from '@/services/go/ermcp/business-review/index';
-import { getUserId } from '@/services/bus/account';
 import { QryBusinessDjRsp } from '@/services/go/ermcp/business-review/interface';
 import { message } from 'ant-design-vue';
 import { ref } from 'vue';
@@ -14,7 +13,7 @@ export function getTableList() {
     // 过滤项
     const filteredInfo = ref();
     const loading = ref<boolean>(false);
-    
+
     // 获取表头
     function getColumns() {
         const list = getTableHead('table_pcweb_business_aduit_dj');
@@ -48,7 +47,7 @@ export function getTableList() {
     // 查询列表
     function actionQuery() {
         loading.value = true;
-        QueryBusinessDj({UserId: getUserId()})
+        QueryBusinessDj({})
             .then((res) => {
                 tableList.value = res.map((e, i) => {
                     return { ...e, key: String(i) };