|
|
@@ -0,0 +1,210 @@
|
|
|
+<template>
|
|
|
+ <!-- 现货仓单 议价 议价单 -->
|
|
|
+ <Drawer :title="'议价单'"
|
|
|
+ :placement="'bottom'"
|
|
|
+ :visible="visible"
|
|
|
+ @cancel="cancel"
|
|
|
+ width="566px"
|
|
|
+ height="405px">
|
|
|
+ <a-table :columns="columns"
|
|
|
+ class="expandLeftTable"
|
|
|
+ :pagination="false"
|
|
|
+ :expandIcon="expandIcon"
|
|
|
+ :loading="loading"
|
|
|
+ :expandIconAsCell="false"
|
|
|
+ rowKey="applyprice"
|
|
|
+ :data-source="tableList">
|
|
|
+ </a-table>
|
|
|
+ <div>
|
|
|
+
|
|
|
+ <a-button class="ml10 cancelBtn"
|
|
|
+ v-if="isMy()"
|
|
|
+ @click="cacel">撤销</a-button>
|
|
|
+ <template v-else>
|
|
|
+ <a-button class="listedBtn"
|
|
|
+ @click="submit">确认</a-button>
|
|
|
+ <a-button class="ml10 cancelBtn"
|
|
|
+ @click="refuse">拒绝</a-button>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </Drawer>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script lang="ts">
|
|
|
+import { defineComponent, PropType, ref } from 'vue';
|
|
|
+import { enumOrderComponents } from '@/common/constants/enumOrderComponents';
|
|
|
+import Drawer from '@/common/components/drawer/index.vue';
|
|
|
+import { QueryWrPositionReq, QueryWrTradeBargainApplyReq, WrOrderDetail, WrPosition } from '@/services/go/wrtrade/interface';
|
|
|
+import { getUserId } from '@/services/bus/account';
|
|
|
+import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
|
|
|
+import { hdWROrder } from '@/services/proto/warehousetrade';
|
|
|
+import { v4 as uuidv4 } from 'uuid';
|
|
|
+import moment from 'moment';
|
|
|
+import { ModalEnum } from '@/common/constants/modalNameEnum';
|
|
|
+import { queryTableList } from '@/common/setup/table';
|
|
|
+import { queryQueryWrTradeBargainApply } from '@/services/go/wrtrade';
|
|
|
+import { getSpotWarrantBargainDetailColumns } from '../../setup';
|
|
|
+import { wrBargainNoAgree, wrBargainBack } from '@/services/proto/WrBargain';
|
|
|
+import { _closeModal } from '@/common/setup/modal/modal';
|
|
|
+import { WrBargainBackReq, WrBargainNoAgreeReq } from '@/services/proto/WrBargain/interface';
|
|
|
+import Long from 'long';
|
|
|
+
|
|
|
+export default defineComponent({
|
|
|
+ name: ModalEnum.spot_warrant_bargain_detail,
|
|
|
+ components: { Drawer },
|
|
|
+ emits: ['cancel', 'update'],
|
|
|
+ props: {
|
|
|
+ selectedRow: {
|
|
|
+ type: Object as PropType<WrOrderDetail>,
|
|
|
+ default: {},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ setup(props, context) {
|
|
|
+ // 表格列表数据
|
|
|
+ const { loading, tableList, queryTable } = queryTableList<WrOrderDetail>();
|
|
|
+ const { visible, cancel } = _closeModal(context);
|
|
|
+ const { wrtradeorderid } = props.selectedRow;
|
|
|
+ const param: QueryWrTradeBargainApplyReq = {
|
|
|
+ haswr: 0,
|
|
|
+ wrtradeorderid: wrtradeorderid,
|
|
|
+ };
|
|
|
+ queryTable(queryQueryWrTradeBargainApply, param);
|
|
|
+ // 我对别人的 => 撤销
|
|
|
+ // 别人对我的 => 确认、拒绝
|
|
|
+ const { isMy, getColums } = getSpotWarrantBargainDetailColumns(props.selectedRow);
|
|
|
+ // 确认
|
|
|
+ function submit() {
|
|
|
+ const param: WrBargainNoAgreeReq = {
|
|
|
+ WrBargainID: Long.fromString(wrtradeorderid),
|
|
|
+ Status: 1,
|
|
|
+ };
|
|
|
+ requestResultLoadingAndInfo(wrBargainNoAgree, param, loading, ['确认成功', '确认失败:']).then(() => {
|
|
|
+ cancel(true);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 拒绝
|
|
|
+ function refuse() {
|
|
|
+ const param: WrBargainNoAgreeReq = {
|
|
|
+ WrBargainID: Long.fromString(wrtradeorderid),
|
|
|
+ Status: 2,
|
|
|
+ };
|
|
|
+ requestResultLoadingAndInfo(wrBargainNoAgree, param, loading, ['拒绝成功', '拒绝失败:']).then(() => {
|
|
|
+ cancel(true);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 撤销
|
|
|
+ function cacel() {
|
|
|
+ const param: WrBargainBackReq = {
|
|
|
+ WrBargainID: Long.fromString(wrtradeorderid),
|
|
|
+ };
|
|
|
+ requestResultLoadingAndInfo(wrBargainBack, param, loading, ['撤销成功', '撤销失败:']).then(() => {
|
|
|
+ cancel(true);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ visible: true,
|
|
|
+ columns: getColums(),
|
|
|
+ loading,
|
|
|
+ tableList,
|
|
|
+ isMy,
|
|
|
+ submit,
|
|
|
+ refuse,
|
|
|
+ cacel,
|
|
|
+ };
|
|
|
+ },
|
|
|
+});
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+.listed {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ .flex;
|
|
|
+ flex-direction: column;
|
|
|
+ overflow: hidden;
|
|
|
+ .condition {
|
|
|
+ width: 100%;
|
|
|
+ height: 48px;
|
|
|
+ padding: 10px 16px;
|
|
|
+ border-bottom: 1px solid @m-black6;
|
|
|
+ .inlineflex;
|
|
|
+ .conditionBtn {
|
|
|
+ align-self: center;
|
|
|
+ align-items: center;
|
|
|
+ border: 0;
|
|
|
+ min-width: 80px;
|
|
|
+ height: 28px;
|
|
|
+ line-height: 28px;
|
|
|
+ background: @m-black7;
|
|
|
+ .rounded-corners(3px);
|
|
|
+ font-size: 14px;
|
|
|
+ color: @m-blue0;
|
|
|
+ &:hover {
|
|
|
+ background: @m-black7-hover;
|
|
|
+ color: @m-blue0-hover;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .conditionBtn + .conditionBtn {
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+::v-deep.formProgress {
|
|
|
+ width: 140px;
|
|
|
+ // height: 3px;
|
|
|
+ // .rounded-corners(2px);
|
|
|
+ margin-left: 70px;
|
|
|
+ .ant-progress-outer {
|
|
|
+ margin-right: 0;
|
|
|
+ padding-right: 0;
|
|
|
+ .ant-progress-inner {
|
|
|
+ background: @m-grey14;
|
|
|
+ .rounded-corners(2px);
|
|
|
+ .ant-progress-bg {
|
|
|
+ height: 3px !important;
|
|
|
+ border-radius: 2px !important;
|
|
|
+ background-color: @m-blue0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .ant-progress-text {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+}
|
|
|
+.unit {
|
|
|
+ margin-left: 80px;
|
|
|
+ .flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ font-size: 14px;
|
|
|
+ color: @m-grey41;
|
|
|
+ height: 14px;
|
|
|
+ line-height: 14px;
|
|
|
+}
|
|
|
+.listedBtn {
|
|
|
+ width: 120px;
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ background: linear-gradient(0deg, @m-blue2 0%, @m-blue0 100%);
|
|
|
+ border-radius: 3px;
|
|
|
+ color: @m-white0;
|
|
|
+ font-size: 14px;
|
|
|
+ text-align: center;
|
|
|
+ border: 0;
|
|
|
+ &:hover {
|
|
|
+ background: linear-gradient(0deg, @m-blue0-hover 0%, @m-blue2-hover 100%);
|
|
|
+ color: @m-white0-hover;
|
|
|
+ }
|
|
|
+}
|
|
|
+.cancelBtn:extend(.listedBtn) {
|
|
|
+ background: linear-gradient(0deg, @m-grey12 0%, @m-grey13 100%);
|
|
|
+ &:hover {
|
|
|
+ background: linear-gradient(0deg, @m-grey12-hover 0%, @m-grey13-hover 100%);
|
|
|
+ color: @m-white0-hover;
|
|
|
+ }
|
|
|
+}
|
|
|
+.ml10 {
|
|
|
+ margin-left: 10px;
|
|
|
+}
|
|
|
+</style>;
|