li.shaoyi 4 年之前
父節點
當前提交
db56c7a446
共有 26 個文件被更改,包括 394 次插入402 次删除
  1. 35 23
      src/common/setup/table/button.ts
  2. 2 2
      src/common/setup/table/interface.ts
  3. 1 1
      src/router/dynamic.ts
  4. 8 12
      src/services/go/commonService/interface.ts
  5. 34 63
      src/views/business/exposure/list/realTime/index.vue
  6. 1 1
      src/views/business/exposure/list/spot/index.vue
  7. 76 97
      src/views/business/plan/components/audit/index.vue
  8. 71 91
      src/views/business/plan/components/cancel/index.vue
  9. 1 1
      src/views/business/purchase/list/all/index.vue
  10. 1 1
      src/views/business/purchase/list/pending/index.vue
  11. 1 1
      src/views/business/purchase/list/performance/index.vue
  12. 1 1
      src/views/business/sell/list/all/index.vue
  13. 1 1
      src/views/business/sell/list/pending/index.vue
  14. 1 1
      src/views/business/sell/list/performance/index.vue
  15. 5 46
      src/views/iframe/setup.ts
  16. 22 41
      src/views/information/custom/index.vue
  17. 124 0
      src/views/information/spot-contract/list/unsubmitted/index.vue
  18. 1 1
      src/views/report/exposure-report/list/exposure_report/index.vue
  19. 1 1
      src/views/report/finance-report/list/finance_report_finance/index.vue
  20. 1 1
      src/views/report/future_report/list/future_report/index.vue
  21. 1 1
      src/views/report/inventory-report/list/category/index.vue
  22. 1 1
      src/views/report/inventory-report/list/warehouse/index.vue
  23. 1 1
      src/views/report/spot-report/list/spot_report/index.vue
  24. 1 1
      src/views/report/sum_pl_report/list/sum_pl_report/index.vue
  25. 1 1
      src/views/search/inventory/list/inventory_current/index.vue
  26. 1 11
      src/views/search/search_document_records/search_spot_warrant/search_spot_warrant_protocol_specified_record/index.vue

+ 35 - 23
src/common/setup/table/button.ts

@@ -263,40 +263,52 @@ export function getButtonList(menuType: EnumRouterName, hasDetail: boolean) {
 
 /**
  * 根据code权限获取按钮列表
+ * @param codes 权限 code 集合
+ * @param isFilter 是否排除 codes 中的权限
  */
-export function getTableButton(codes: string[] = []): BtnListType[] {
+export function getTableButton(codes: string[] = [], isFilter = false): BtnListType[] {
     const { meta } = useRoute();
     const auth = meta.auth as OperationTabMenuAuth[];
 
     // 标准化 按钮 数据
-    const useBtn = (lable: string, code: string, className: string) => {
-        return { lable, code, className: getClassName(className) }
+    const useBtn = (lable: string, code: string) => {
+        return { lable, code, className: getClassName(code) }
     }
 
     if (codes.length === 0) {
         // 不传入 code 参数,默认返回全部按钮数据
         return auth.map(el => {
-            return useBtn(el.label, el.code, el.code)
+            return useBtn(el.label, el.code)
         })
     } else {
-        // 转 map 已空间换时间
-        const authMap = new Map<string, OperationTabMenuAuth>()
-        auth.forEach(el => {
-            const { code } = el
-            if (authMap.has(code)) {
-                console.warn('按钮权限列表配置重复的code,请开发人员查看!!!')
-            } else {
-                authMap.set(code, el)
-            }
-        })
-        // 根据 传入的 code 返回 code对应的配置数据
-        return codes.reduce((result, code) => {
-            const item = authMap.get(code)
-            if (item) {
-                const { code, label } = item
-                result.push(useBtn(label, code, code))
-            }
-            return result
-        }, [] as BtnListType[])
+        if (isFilter) {
+            return auth.reduce((result, item) => {
+                if (!codes.includes(item.code)) {
+                    const { code, label } = item
+                    result.push(useBtn(label, code))
+                }
+                return result;
+            }, [] as BtnListType[])
+        } else {
+            // 转 map 已空间换时间
+            const authMap = new Map<string, OperationTabMenuAuth>()
+            auth.forEach(el => {
+                const { code } = el
+                if (authMap.has(code)) {
+                    console.warn('按钮权限列表配置重复的code,请开发人员查看!!!')
+                } else {
+                    authMap.set(code, el)
+                }
+            })
+            // 根据 传入的 code 返回 code对应的配置数据
+            return codes.reduce((result, code) => {
+                const item = authMap.get(code)
+                if (item) {
+                    const { code, label } = item
+                    result.push(useBtn(label, code))
+                }
+                return result
+            }, [] as BtnListType[])
+        }
     }
 }

+ 2 - 2
src/common/setup/table/interface.ts

@@ -23,11 +23,11 @@ export interface BtnParam {
 
 export interface ComposeTableParam {
     queryFn: Function,  // 查询表格数据
-    menuType: EnumRouterName,  // 操作按钮列表key
+    menuType: EnumRouterName,  // 操作按钮列表key---------------------待优化删除
     tableName?: keyof TableKey, // 表头key
     tableFilterKey: string[], // 表格过滤字段
     tableFilterCB?: Function, // 表格过滤字段回调函数
-    isDetail: boolean,  // 是否需要详情
+    isDetail: boolean,  // 是否需要详情-------------------------------待优化删除
 }
 
 export interface ComposeTableDetailParam {

+ 1 - 1
src/router/dynamic.ts

@@ -19,7 +19,7 @@ const addNotFound = () => {
  */
 const addRoutes = (routes: OperationTabMenu[], parentName = ''): void => {
     routes.forEach((item) => {
-        if (item.path && item.isshow && item.component) {
+        if (item.component && item.path) {
             let component;
             switch (item.component) {
                 case 'Layout':

+ 8 - 12
src/services/go/commonService/interface.ts

@@ -36,22 +36,18 @@ export interface QueryNoticeRsp {
 }
 
 export interface OperationTabMenuAuth {
-    label: string, //标签
-    code: string, //权限标识代码
-    requireauth: boolean, //是否需要登录权限
-    isshow: boolean, //是否显示
-    remark: string, //备注
+    label: string, // 标签
+    code: string, // 权限代码
+    remark: string, // 备注
 }
 
 export interface OperationTabMenu {
-    title: string, //标题
-    code: string,  //唯一ID
-    path: string, //路由路径
-    component: string, // 路由组件
+    title: string, // 标题
+    code: string,  // 路由名称
+    path: string, // 路由路径
+    component: string, // 组件名或文件地址
     sort: number, // 排序
-    requireauth: boolean, //是否需要登录权限
-    isshow: boolean, //是否显示
-    url: string, //管理端地址
+    url: string, // 管理端地址
     remark: string, // 备注
     children: OperationTabMenu[],
     auth: OperationTabMenuAuth[]

+ 34 - 63
src/views/business/exposure/list/realTime/index.vue

@@ -1,68 +1,39 @@
 <template>
-  <!-- 实时敞口-->
-  <div class="exposure-real-time table-height"
-       :loading="loading">
-    <div class="real-time-header"
-         v-if="isPingAnOem()">
-      <span class="dialogSpan">每隔</span>
-      <a-select class="typeSelect real-time-select"
-                style="width: 100px"
-                v-model:value="timer"
-                @change="timerChange"
-                placeholder="请选择间隔时间">
-        <a-select-option :value="item.id"
-                         v-for="item in diffTimes"
-                         :key="item.id">
-          {{ item.name }}
-        </a-select-option>
-      </a-select>
-      <span class="dialogSpan">刷新一次,倒计时 </span> <span class="red">{{ num }}</span>
-      <a-button type="button"
-                class="operBtn ant-btn"
-                @click="setTimerAction">{{ isStart ? '停止监控' : '开始监控' }}</a-button>
+    <!-- 实时敞口-->
+    <div class="exposure-real-time table-height" :loading="loading">
+        <div class="real-time-header" v-if="isPingAnOem()">
+            <span class="dialogSpan">每隔</span>
+            <a-select class="typeSelect real-time-select" style="width: 100px" v-model:value="timer" @change="timerChange" placeholder="请选择间隔时间">
+                <a-select-option :value="item.id" v-for="item in diffTimes" :key="item.id">
+                    {{ item.name }}
+                </a-select-option>
+            </a-select>
+            <span class="dialogSpan">刷新一次,倒计时 </span> <span class="red">{{ num }}</span>
+            <a-button type="button" class="operBtn ant-btn" @click="setTimerAction">{{ isStart ? '停止监控' : '开始监控' }}</a-button>
+        </div>
+        <filterCustomTable @search="updateColumn" v-else> </filterCustomTable>
+        <a-table :columns="columns" class="topOrderTable" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+            <template v-if="isPingAnOem()" #index="{ index }">
+                <span>{{ index + 1 }}</span>
+            </template>
+        </a-table>
+        <!-- 明细 -->
+        <Description v-if="visible" @close="closeDrawer" @changeTab="changeTab" :tabList="tabList">
+            <a-table :columns="columnsDetail" class="topTable" :pagination="false" rowKey="key" :data-source="detailTableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+                <!-- 套保品种/代码 -->
+                <template #middlegoodsname="{ record }" v-if="!isPingAnOem()">
+                    <span>{{ record.middlegoodsname + '/' + record.middlegoodscode }}</span>
+                </template>
+                <template v-if="isPingAnOem()" #index="{ index }">
+                    <span>{{ index + 1 }}</span>
+                </template>
+                <!-- 类型 -->
+                <template #contracttype="{ record }">
+                    <span>{{ getPlanContractType(record.contracttype) }}</span>
+                </template>
+            </a-table>
+        </Description>
     </div>
-    <filterCustomTable @search="updateColumn"
-                       v-else> </filterCustomTable>
-    <a-table :columns="columns"
-             class="topOrderTable"
-             :pagination="false"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-      <template v-if="isPingAnOem()"
-                #index="{ index }">
-        <span>{{ index + 1 }}</span>
-      </template>
-    </a-table>
-    <!-- 明细 -->
-    <Description v-if="visible"
-                 @close="closeDrawer"
-                 @changeTab="changeTab"
-                 :tabList="tabList">
-      <a-table :columns="columnsDetail"
-               class="topTable"
-               :pagination="false"
-               rowKey="key"
-               :data-source="detailTableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-        <!-- 套保品种/代码 -->
-        <template #middlegoodsname="{ record }"
-                  v-if="!isPingAnOem()">
-          <span>{{ record.middlegoodsname + '/' + record.middlegoodscode }}</span>
-        </template>
-        <template v-if="isPingAnOem()"
-                  #index="{ index }">
-          <span>{{ index + 1 }}</span>
-        </template>
-        <!-- 类型 -->
-        <template #contracttype="{ record }">
-          <span>{{ getPlanContractType(record.contracttype) }}</span>
-        </template>
-      </a-table>
-    </Description>
-  </div>
 </template>
 
 <script lang="ts">

+ 1 - 1
src/views/business/exposure/list/spot/index.vue

@@ -63,7 +63,7 @@ export default defineComponent({
         } = handleComposeTable_detail<Ermcp3AreaSpot>(param);
 
         // 底部明细标签
-        const tabList = getTableButton(['position_spot_details']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 76 - 97
src/views/business/plan/components/audit/index.vue

@@ -1,95 +1,79 @@
 <template>
-  <!-- 审核计划-->
-  <a-modal class="commonModal fieldsetDialog warehouse-disable"
-           title="审核计划"
-           v-model:visible="visible"
-           centered
-           @cancel="cancel"
-           width="890px">
-    <template #footer>
-      <a-button key="submit"
-                class="cancelBtn"
-                @click="cancel">取消</a-button>
-      <a-button key="submit"
-                type="primary"
-                :loading="loading"
-                @click="pass">审核通过</a-button>
-      <a-button key="submit"
-                type="primary"
-                :loading="loading"
-                @click="refuse">审核拒绝</a-button>
-    </template>
-    <a-form class="inlineForm"
-            :form="form"
-            @submit="handleSearch">
-      <fieldset class="formFieldSet">
-        <legend>套保计划</legend>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="计划类型">
-              <span class="white">{{ getPlanContractType(selectedRow.contracttype) }}</span>
-            </a-form-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-item label="计划名称">
-              <span class="white">{{ formatValue(selectedRow.hedgeplanno) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="现货品种">
-              <span class="white">{{ formatValue(selectedRow.deliverygoodsname) }}</span>
-            </a-form-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-item label="商品">
-              <span class="white">{{ formatValue(selectedRow.wrstandardname) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="计划量">
-              <span class="white">{{ formatValue(selectedRow.planqty) }}</span>
-            </a-form-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-item label="标仓系数">
-              <span class="white">{{ formatValue(selectedRow.convertfactor) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="交易用户">
-              <span class="white">{{ formatValue(selectedRow.tradeusername) }}</span>
-            </a-form-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-item label="结算币种">
-              <span class="white">{{ formatValue(selectedRow.currencyname) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="状态">
-              <span
-                    class="white">{{ formatValue(getPlanStatusName(selectedRow.hedgeplanstatus)) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="备注">
-              <span class="white">{{ formatValue(selectedRow.remark) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-      </fieldset>
-    </a-form>
-  </a-modal>
+    <!-- 审核计划-->
+    <a-modal class="commonModal fieldsetDialog warehouse-disable" title="审核计划" v-model:visible="visible" centered @cancel="cancel" width="890px">
+        <template #footer>
+            <a-button key="submit" class="cancelBtn" @click="cancel">取消</a-button>
+            <a-button key="submit" type="primary" :loading="loading" @click="pass">审核通过</a-button>
+            <a-button key="submit" type="primary" :loading="loading" @click="refuse">审核拒绝</a-button>
+        </template>
+        <a-form class="inlineForm" :form="form" @submit="handleSearch">
+            <fieldset class="formFieldSet">
+                <legend>套保计划</legend>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="计划类型">
+                            <span class="white">{{ getPlanContractType(selectedRow.contracttype) }}</span>
+                        </a-form-item>
+                    </a-col>
+                    <a-col :span="12">
+                        <a-form-item label="计划名称">
+                            <span class="white">{{ formatValue(selectedRow.hedgeplanno) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="现货品种">
+                            <span class="white">{{ formatValue(selectedRow.deliverygoodsname) }}</span>
+                        </a-form-item>
+                    </a-col>
+                    <a-col :span="12">
+                        <a-form-item label="商品">
+                            <span class="white">{{ formatValue(selectedRow.wrstandardname) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="计划量">
+                            <span class="white">{{ formatValue(selectedRow.planqty) }}</span>
+                        </a-form-item>
+                    </a-col>
+                    <a-col :span="12">
+                        <a-form-item label="标仓系数">
+                            <span class="white">{{ formatValue(selectedRow.convertfactor) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="交易用户">
+                            <span class="white">{{ formatValue(selectedRow.tradeusername) }}</span>
+                        </a-form-item>
+                    </a-col>
+                    <a-col :span="12">
+                        <a-form-item label="结算币种">
+                            <span class="white">{{ formatValue(selectedRow.currencyname) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="状态">
+                            <span class="white">{{ formatValue(getPlanStatusName(selectedRow.hedgeplanstatus)) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="备注">
+                            <span class="white">{{ formatValue(selectedRow.remark) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+            </fieldset>
+        </a-form>
+    </a-modal>
 </template>
 
 <script lang="ts">
@@ -172,9 +156,4 @@ export default defineComponent({
         };
     },
 });
-</script>
-
-<style lang="less">
-.warehouse-disable {
-}
-</style>
+</script>

+ 71 - 91
src/views/business/plan/components/cancel/index.vue

@@ -1,89 +1,74 @@
 <template>
-  <!-- 计划撤销-->
-  <a-modal class="commonModal custom-detail"
-           title="计划撤销"
-           v-model:visible="visible"
-           centered
-           :maskClosable="false"
-           @cancel="cancel"
-           width="890px">
-    <template #footer>
-      <a-button key="submit"
-                class="cancelBtn"
-                @click="cancel">取消
-      </a-button>
-      <a-button key="submit"
-                type="primary"
-                :loading="loading"
-                @click="submit">确认撤销
-      </a-button>
-    </template>
-    <a-form class="inlineForm"
-            :form="form"
-            @submit="handleSearch">
-      <fieldset class="formFieldSet">
-        <legend>基本信息</legend>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="计划类型">
-              <span class="white">{{ getPlanContractType(selectedRow.contracttype) }}</span>
-            </a-form-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-item label="计划名称">
-              <span class="white">{{ formatValue(selectedRow.hedgeplanno) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="现货品种">
-              <span class="white">{{ formatValue(selectedRow.deliverygoodsname) }}</span>
-            </a-form-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-item label="标仓系数">
-              <span class="white">{{ formatValue(selectedRow.convertfactor) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="计划量">
-              <span class="white">{{ formatValue(selectedRow.planqty) }}</span>
-            </a-form-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-item label="备注">
-              <span class="white">{{ formatValue(selectedRow.remark) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-      </fieldset>
-      <fieldset class="formFieldSet">
-        <legend>其它信息</legend>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="交易用户">
-              <span class="white">{{ formatValue(selectedRow.tradeusername) }}</span>
-            </a-form-item>
-          </a-col>
-          <a-col :span="12">
-            <a-form-item label="结算币种">
-              <span class="white">{{ formatValue(selectedRow.enumdicname) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-        <a-row :gutter="24">
-          <a-col :span="12">
-            <a-form-item label="备注">
-              <span class="white">{{ formatValue(selectedRow.remark) }}</span>
-            </a-form-item>
-          </a-col>
-        </a-row>
-      </fieldset>
-    </a-form>
-  </a-modal>
+    <!-- 计划撤销-->
+    <a-modal class="commonModal custom-detail" title="计划撤销" v-model:visible="visible" centered :maskClosable="false" @cancel="cancel" width="890px">
+        <template #footer>
+            <a-button key="submit" class="cancelBtn" @click="cancel">取消 </a-button>
+            <a-button key="submit" type="primary" :loading="loading" @click="submit">确认撤销 </a-button>
+        </template>
+        <a-form class="inlineForm" :form="form" @submit="handleSearch">
+            <fieldset class="formFieldSet">
+                <legend>基本信息</legend>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="计划类型">
+                            <span class="white">{{ getPlanContractType(selectedRow.contracttype) }}</span>
+                        </a-form-item>
+                    </a-col>
+                    <a-col :span="12">
+                        <a-form-item label="计划名称">
+                            <span class="white">{{ formatValue(selectedRow.hedgeplanno) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="现货品种">
+                            <span class="white">{{ formatValue(selectedRow.deliverygoodsname) }}</span>
+                        </a-form-item>
+                    </a-col>
+                    <a-col :span="12">
+                        <a-form-item label="标仓系数">
+                            <span class="white">{{ formatValue(selectedRow.convertfactor) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="计划量">
+                            <span class="white">{{ formatValue(selectedRow.planqty) }}</span>
+                        </a-form-item>
+                    </a-col>
+                    <a-col :span="12">
+                        <a-form-item label="备注">
+                            <span class="white">{{ formatValue(selectedRow.remark) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+            </fieldset>
+            <fieldset class="formFieldSet">
+                <legend>其它信息</legend>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="交易用户">
+                            <span class="white">{{ formatValue(selectedRow.tradeusername) }}</span>
+                        </a-form-item>
+                    </a-col>
+                    <a-col :span="12">
+                        <a-form-item label="结算币种">
+                            <span class="white">{{ formatValue(selectedRow.enumdicname) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+                <a-row :gutter="24">
+                    <a-col :span="12">
+                        <a-form-item label="备注">
+                            <span class="white">{{ formatValue(selectedRow.remark) }}</span>
+                        </a-form-item>
+                    </a-col>
+                </a-row>
+            </fieldset>
+        </a-form>
+    </a-modal>
 </template>
 
 <script lang="ts">
@@ -142,9 +127,4 @@ export default defineComponent({
         };
     },
 });
-</script>
-
-<style lang="less">
-.plan_audit_cancel {
-}
-</style>;
+</script>

+ 1 - 1
src/views/business/purchase/list/all/index.vue

@@ -72,7 +72,7 @@ export default defineComponent({
         };
 
         // 权限按钮
-        const buttons = getTableButton(['detail']);
+        const buttons = getTableButton();
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 1 - 1
src/views/business/purchase/list/pending/index.vue

@@ -74,7 +74,7 @@ export default defineComponent({
         };
 
         // 权限按钮
-        const buttons = getTableButton(['purchase_pending_someprice', 'purchase_pending_trade', 'detail']);
+        const buttons = getTableButton();
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 1 - 1
src/views/business/purchase/list/performance/index.vue

@@ -72,7 +72,7 @@ export default defineComponent({
         };
 
         // 权限按钮
-        const buttons = getTableButton(['purchase_performance_settlement', 'purchase_performance_funds', 'purchase_performance_invoice', 'purchase_performance_storage', 'purchase_performance_ending', 'detail']);
+        const buttons = getTableButton();
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 1 - 1
src/views/business/sell/list/all/index.vue

@@ -71,7 +71,7 @@ export default defineComponent({
         };
 
         // 权限按钮
-        const buttons = getTableButton(['detail']);
+        const buttons = getTableButton();
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 1 - 1
src/views/business/sell/list/pending/index.vue

@@ -67,7 +67,7 @@ export default defineComponent({
         };
 
         // 权限按钮
-        const buttons = getTableButton(['sell_pending_someprice', 'sell_pending_trade', 'detail']);
+        const buttons = getTableButton();
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 1 - 1
src/views/business/sell/list/performance/index.vue

@@ -72,7 +72,7 @@ export default defineComponent({
         };
 
         // 权限按钮
-        const buttons = getTableButton(['sell_performance_settlement', 'sell_performance_funds', 'sell_performance_invoice', 'sell_performance_storage', 'sell_performance_ending', 'detail']);
+        const buttons = getTableButton();
 
         return {
             ...handleComposeTable<Ermcp3SellBuyContract>(param),

+ 5 - 46
src/views/iframe/setup.ts

@@ -1,69 +1,35 @@
-import { ref, watch } from 'vue';
+import { ref } from 'vue';
 import { useRoute } from 'vue-router';
 import { initData } from "@/common/methods";
 import { serviceURL } from "@/services/request";
 import { getToken } from "@/services/bus/token";
 import { OperationTabMenuAuth } from '@/services/go/commonService/interface';
 
-interface IframeCode {
-    code: string;
-    tabIndex: number,
-    buttons: {
-        //  权限按钮 info(详情):add(新增):edit(修改):del(停用启用)
-        [key: string]: string,
-    }
-}
 
-const iframeCode: IframeCode[] = [
+const iframeCode: { code: string, tabIndex: number }[] = [
     {
         code: 'goods_spot', // 基础设置-商品设置-现货品种
         tabIndex: 1,
-        buttons: {
-            goods_spot_add: 'add',
-            goods_spot_edit: 'edit',
-            goods_spot_stop: 'stop',
-            goods_spot_recover: 'recover',
-            info: 'info',
-        }
     },
     {
         code: 'goods_hedge', // 基础设置-商品设置-套保品种
         tabIndex: 2,
-        buttons: {
-            goods_hedge_add: 'add',
-            goods_hedge_edit: 'edit',
-            info: 'info',
-        }
     },
     {
         code: 'hedge_ratio_checkpending', // 风管审核-套保比例审核-待审核
         tabIndex: 1,
-        buttons: {
-            hedge_ratio_check: 'check',
-            info: 'info',
-        }
     },
     {
         code: 'hedge_ratio_performance', // 风管审核-套保比例审核-已审核
         tabIndex: 2,
-        buttons: {
-            info: 'info',
-        }
     },
     {
         code: 'spot_params_checkpending', // 风管审核-现货参数审核-待审核
         tabIndex: 1,
-        buttons: {
-            spot_params_check: 'check',
-            info: 'info',
-        }
     },
     {
         code: 'spot_params_performance', // 风管审核-现货参数审核-已审核
         tabIndex: 2,
-        buttons: {
-            info: 'info',
-        }
     }
 ]
 
@@ -75,22 +41,15 @@ export function getIframeUrl() {
     const url = ref('');
 
     const getUrl = () => {
-        let param = 'resourcepcmenu=';
         // 管理端地址
         const serviceUrl = serviceURL.pcMangerUrl + route.meta.url;
         // 根据当前路由 name(code) 查找出对应的 iframeCode
         const item = iframeCode.find((item) => item.code === route.name);
+
         if (item) {
             const auth = route.meta.auth as OperationTabMenuAuth[];
-            const fn = (code: string) => auth.find((e) => e.code === code);
-            // 拼接按钮权限参数
-            Object.entries(item.buttons).forEach((values) => {
-                if (values[0] === 'info' || fn(values[0])) {
-                    param += `:${values[1]}`;
-                }
-            });
-
-            url.value = `${serviceUrl}?token=${getToken()}&tabindex=${item.tabIndex}&${param}`;
+            const param = auth.reduce((res, item) => res + `:${item.code}`, '');
+            url.value = `${serviceUrl}?token=${getToken()}&tabindex=${item.tabIndex}&resourcepcmenu=${param}`;
         }
     }
 

+ 22 - 41
src/views/information/custom/index.vue

@@ -1,44 +1,25 @@
 <template>
-  <!-- 客户资料 -->
-  <div class="plan_uncommitted"
-       :loading="loading">
-    <Filter @search="updateColumn">
-      <mtp-table-button class="btn-list-sticky"
-                        :buttons="addButton"
-                        @click="openComponent" />
-    </Filter>
-    <a-table :columns="isPingAnOem() ? pingan_custom_column() : columns"
-             class="srcollYTable"
-             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }"
-             :pagination="false"
-             :loading="loading"
-             :expandedRowKeys="expandedRowKeys"
-             :customRow="Rowclick"
-             rowKey="key"
-             :data-source="tableList">
-      <!-- 额外的展开行 -->
-      <template #expandedRowRender="{ record }">
-        <mtp-table-button class="btn-list-sticky"
-                          :buttons="buttons"
-                          :record="record"
-                          @click="openComponent" />
-      </template>
-      <template #contracttype="{ text }">
-        <a>{{ getPlanContractType(text) }}</a>
-      </template>
-      <template #hedgeplanstatus="{ text }">
-        <a>{{ getPlanStatusName(text) }}</a>
-      </template>
-    </a-table>
-    <!-- 右键 -->
-    <contextMenu :contextMenu="contextMenu"
-                 @cancel="closeContext"
-                 :list="buttons"> </contextMenu>
-    <component :is="componentId"
-               v-if="componentId"
-               :selectedRow="selectedRow"
-               @cancel="closeComponent"> </component>
-  </div>
+    <!-- 客户资料 -->
+    <div class="plan_uncommitted" :loading="loading">
+        <Filter @search="updateColumn">
+            <mtp-table-button class="btn-list-sticky" :buttons="addButton" @click="openComponent" />
+        </Filter>
+        <a-table :columns="isPingAnOem() ? pingan_custom_column() : columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList">
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="buttons" :record="record" @click="openComponent" />
+            </template>
+            <template #contracttype="{ text }">
+                <a>{{ getPlanContractType(text) }}</a>
+            </template>
+            <template #hedgeplanstatus="{ text }">
+                <a>{{ getPlanStatusName(text) }}</a>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="buttons"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"> </component>
+    </div>
 </template>
 
 <script lang="ts">
@@ -96,7 +77,7 @@ export default defineComponent({
         };
 
         // 权限按钮
-        const buttons = getTableButton().filter((e) => e.code !== 'add');
+        const buttons = getTableButton(['add'], true);
         // 新增
         const addButton = getTableButton(['add']);
 

+ 124 - 0
src/views/information/spot-contract/list/unsubmitted/index.vue

@@ -0,0 +1,124 @@
+<template>
+    <!-- 现货合同: 未提交-->
+    <div class="spot-contract-not-commit" :loading="loading">
+        <filterCustomTable @search="updateColumn">
+            <mtp-table-button :buttons="firstBtn" @click="openComponent" />
+        </filterCustomTable>
+        <a-table :columns="columns" class="topOrderTable" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+            <!-- 额外的展开行 -->
+            <!-- 额外的展开行 -->
+            <template #expandedRowRender="{ record }">
+                <mtp-table-button class="btn-list-sticky" :buttons="secondBtn" :record="record" @click="openComponent" />
+            </template>
+            <template #biztype="{ text }">
+                <a>{{ getBizTypeName(text) }}</a>
+            </template>
+
+            <template #pricetype="{ text }">
+                <span>{{ getPriceTypeName(text) }}</span>
+            </template>
+
+            <template #contracctstatus="{ text }">
+                <a>{{ getContractStatusName(text) }}</a>
+            </template>
+
+            <template #contracttype="{ text }">
+                <a>{{ getContractTypeName(text) }}</a>
+            </template>
+            <!-- 对手方 -->
+            <template #negative="{ record }">
+                <a>{{ record.contracttype === 1 ? record.sellusername : record.buyusername }}</a>
+            </template>
+            <!-- 点假期 -->
+            <template #startdate="{ record }">
+                <span>{{ formatValue(formatTime(record.startdate, 'd') + '--' + formatTime(record.enddate, 'd')) }}</span>
+            </template>
+            <!-- 交收期 -->
+            <template #deliverystartdate="{ record }">
+                <span>{{ formatValue(formatTime(record.deliverystartdate, 'd') + '--' + formatTime(record.deliveryenddate, 'd')) }}</span>
+            </template>
+            <!-- 业务员 -->
+            <template #saleuserid="{ record }">
+                <span>{{ findManagerName(record.saleuserid) }}</span>
+            </template>
+            <!-- 跟单员 -->
+            <template #meruserid="{ record }">
+                <span>{{ findManagerName(record.meruserid) }}</span>
+            </template>
+            <!-- 合同量 -->
+            <template #qty="{ text, record }">
+                <span>{{ handleEnumdic(text, record) }}</span>
+            </template>
+        </a-table>
+        <!-- 右键 -->
+        <contextMenu :contextMenu="contextMenu" @cancel="closeContext" :list="secondBtn"> </contextMenu>
+        <component :is="componentId" v-if="componentId" :selectedRow="selectedRow" @cancel="closeComponent"></component>
+    </div>
+</template>
+
+<script lang="ts">
+import { queryTableList, MtpTableButton, contextMenu, defineAsyncComponent, defineComponent, handleComposeTable, ComposeTableParam } from '@/common/export/commonTable';
+import { filterCustomTable } from '../../components';
+
+import { formatTime, formatValue } from '@/common/methods';
+import { queryBusinessManager, findManagerName, tableFilterCB, handleEnumdic } from '../setup';
+import { getPriceTypeName, getBizTypeName, getContractStatusName, getContractTypeName } from '@/common/constants/enumsName';
+import { Ermcp3ContractRsp } from '@/services/go/ermcp/spot-contract/interface';
+import { QuerySpotContract } from '@/services/go/ermcp/spot-contract';
+import { EnumRouterName } from '@/common/constants/enumRouterName';
+import { getTableButton } from '@/common/setup/table/button';
+
+export default defineComponent({
+    name: EnumRouterName.spot_contract_unsubmitted,
+    components: {
+        filterCustomTable,
+        contextMenu,
+        detail: defineAsyncComponent(() => import('../../components/detail/index.vue')),
+        add: defineAsyncComponent(() => import('../../components/add/index.vue')),
+        resubmit: defineAsyncComponent(() => import('../../components/modify/index.vue')),
+        cancel: defineAsyncComponent(() => import('../../components/delete/index.vue')),
+        MtpTableButton,
+    },
+    setup() {
+        // 权限按钮
+        const firstBtn = getTableButton(['add']);
+        const secondBtn = getTableButton(['add'], true);
+
+        // 表格列表数据
+        const { loading, tableList, queryTable } = queryTableList<Ermcp3ContractRsp>();
+
+        // 获取列表数据
+        const queryTableAction = () => {
+            queryTable(QuerySpotContract, { querytype: 1 });
+            // 获取 业务账户
+            queryBusinessManager();
+        };
+
+        // 表格通用逻辑
+        const param: ComposeTableParam = {
+            queryFn: queryTableAction,
+            menuType: EnumRouterName.spot_contract_unsubmitted,
+            tableName: 'table_pcweb_delivery',
+            tableFilterKey: ['contracttype', 'pricetype', 'contractno'],
+            tableFilterCB,
+            isDetail: true,
+        };
+
+        return {
+            ...handleComposeTable<Ermcp3ContractRsp>(param),
+            loading,
+            tableList,
+            getBizTypeName,
+            getPriceTypeName,
+            getContractStatusName,
+            getContractTypeName,
+            formatTime,
+            formatValue,
+            findManagerName,
+            handleEnumdic,
+            firstBtn,
+            secondBtn,
+        };
+    },
+});
+</script>

+ 1 - 1
src/views/report/exposure-report/list/exposure_report/index.vue

@@ -80,7 +80,7 @@ export default defineComponent({
         const chaceSearchValue = ref<TypeAndTime>();
 
         // 底部明细标签
-        const tabList = getTableButton(['exposure_report_exposure_contract_changes', 'exposure_report_exposure_hedging_plan', 'exposure_report_exposure_futures_changes', 'exposure_report_exposure_parameter_adjustment_changes']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 1 - 1
src/views/report/finance-report/list/finance_report_finance/index.vue

@@ -68,7 +68,7 @@ export default defineComponent({
         const chaceSearchValue = ref<TypeAndTime>();
 
         // 底部明细标签
-        const tabList = getTableButton(['finance_report_finance_category_breakdown', 'finance_report_finance_brand_details']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 1 - 1
src/views/report/future_report/list/future_report/index.vue

@@ -78,7 +78,7 @@ export default defineComponent({
         const chaceSearchValue = ref<TypeAndTime>();
 
         // 底部明细标签
-        const tabList = getTableButton(['future_report_future_detail']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 1 - 1
src/views/report/inventory-report/list/category/index.vue

@@ -70,7 +70,7 @@ export default defineComponent({
         } = handleComposeTable_detail<Ermcp3AreaStockReport>(param);
 
         // 底部明细标签
-        const tabList = getTableButton(['inventory_report_inventory_category_brand_detail', 'inventory_report_inventory_category_warehouse_detail']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 1 - 1
src/views/report/inventory-report/list/warehouse/index.vue

@@ -69,7 +69,7 @@ export default defineComponent({
         const chaceSearchValue = ref<TypeAndTime>();
 
         // 底部明细标签
-        const tabList = getTableButton(['warehouse_report_warehouse_detail']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 1 - 1
src/views/report/spot-report/list/spot_report/index.vue

@@ -130,7 +130,7 @@ export default defineComponent({
         const chaceSearchValue = ref<TypeAndTime>();
 
         // 底部明细标签
-        const tabList = getTableButton(['spot_report_spot_detail']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 1 - 1
src/views/report/sum_pl_report/list/sum_pl_report/index.vue

@@ -102,7 +102,7 @@ export default defineComponent({
         const chaceSearchValue = ref<TypeAndTime>();
 
         // 底部明细标签
-        const tabList = getTableButton(['sum_pl_report_profit_and_loss_details']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 1 - 1
src/views/search/inventory/list/inventory_current/index.vue

@@ -69,7 +69,7 @@ export default defineComponent({
         } = handleComposeTable_detail<Ermcp3AreaStock>(param);
 
         // 底部明细标签
-        const tabList = getTableButton(['inventory_manager_inbound_details', 'inventory_manager_outbound_details']);
+        const tabList = getTableButton();
 
         // 切换明细
         function changeTab(index: number, current: TabList) {

+ 1 - 11
src/views/search/search_document_records/search_spot_warrant/search_spot_warrant_protocol_specified_record/index.vue

@@ -1,17 +1,7 @@
 <template>
     <!-- 单据记录 商品合约-->
     <div class="topTableHeight">
-        <a-table
-            :columns="columns"
-            class="srcollYTable"
-            :scroll="{ x: '100%', y: 'calc(100vh - 405px)' }"
-            :pagination="false"
-            :loading="loading"
-            :expandedRowKeys="expandedRowKeys"
-            :customRow="Rowclick"
-            rowKey="key"
-            :data-source="tableList"
-        ></a-table>
+        <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 405px)' }" :pagination="false" :loading="loading" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" rowKey="key" :data-source="tableList"></a-table>
     </div>
 </template>