li.shaoyi %!s(int64=2) %!d(string=hai) anos
pai
achega
73aaf6e659

+ 6 - 55
src/business/order/index.ts

@@ -141,68 +141,19 @@ export function usePerformanceContracted(selectedRow: Ermcp.MyPerformancRsp) {
 // 履约修改联络信息
 export function usePerformanceModify(selectedRow: Ermcp.MyPerformancRsp) {
     const loading = shallowRef(false)
-    const formData = reactive<{ address?: Ermcp.UserReceiveInfoRsp, invoice?: Ermcp.WrUserReceiptInfoRsp, contactInfo?: string }>({})
+    const formData = reactive({
+        ContactInfo: '',
+        ReceiveInfo: '',
+        ReceiptInfo: ''
+    })
 
     const formSubmit = async () => {
         try {
             loading.value = true
-
-            const jsonParam = {
-                ContactInfo: formData.contactInfo,
-                ReceiveInfo: '',
-                ReceiptInfo: ''
-            }
-
-            if (formData.address) {
-                const { provincename, cityname, districtname, address } = formData.address
-                jsonParam.ReceiveInfo = [provincename, cityname, districtname, address].join(' ')
-            }
-
-            if (formData.invoice) {
-                Object.entries(formData.invoice).forEach(([key, value]) => {
-                    if (value !== '') {
-                        switch (key) {
-                            case 'receipttype': {
-                                jsonParam.ReceiptInfo += '发票类型:' + getReceiptTypeName(Number(value)) + '\n'
-                                break
-                            }
-                            case 'username': {
-                                jsonParam.ReceiptInfo += '户名:' + value + '\n'
-                                break
-                            }
-                            case 'address': {
-                                jsonParam.ReceiptInfo += '地址:' + value + '\n'
-                                break
-                            }
-                            case 'contactinfo': {
-                                jsonParam.ReceiptInfo += '联系方式:' + value + '\n'
-                                break
-                            }
-                            case 'idnum': {
-                                jsonParam.ReceiptInfo += '身份证号码:' + value + '\n'
-                                break
-                            }
-                            case 'receiptaccount': {
-                                jsonParam.ReceiptInfo += '发票帐号:' + value + '\n'
-                                break
-                            }
-                            case 'receiptbank': {
-                                jsonParam.ReceiptInfo += '发票开户行:' + value + '\n'
-                                break
-                            }
-                            case 'taxpayerid': {
-                                jsonParam.ReceiptInfo += '纳税人识别号:' + value + '\n'
-                                break
-                            }
-                        }
-                    }
-                })
-            }
-
             return await performanceModifyContact({
                 PerformancePlanID: Long.fromString(selectedRow.performanceplanid),
                 AccountID: firstAccountId.value,
-                ContactInfo: JSON.stringify(jsonParam), // string 联络信息
+                ContactInfo: JSON.stringify(formData), // string 联络信息
             })
         } finally {
             loading.value = false

+ 8 - 7
src/hooks/component/index.ts

@@ -80,14 +80,15 @@ export function useComponent(callback?: (componentName?: string) => void) {
 
     /**
      * 路由守卫,离开页面前关闭组件
+     * (待优化,可能会阻止路由跳转)
      */
-    onBeforeRouteLeave((to, from, next) => {
-        if (closeComponentEach()) {
-            next()
-        } else {
-            next(false)
-        }
-    })
+    // onBeforeRouteLeave((to, from, next) => {
+    //     if (closeComponentEach()) {
+    //         next()
+    //     } else {
+    //         next(false)
+    //     }
+    // })
 
     onUnmounted(() => {
         componentInstanceMap.delete(uuid)

+ 2 - 2
src/packages/pc/views/customs/bonded/components/advance-payment/index.vue

@@ -9,8 +9,8 @@
             <el-descriptions-item label="综合服务费">{{ details.servicefee }}</el-descriptions-item>
             <el-descriptions-item label="其它费用">{{ details.otherfee }}</el-descriptions-item>
             <el-descriptions-item label="总共">{{ details.totalfee }}</el-descriptions-item>
-            <el-descriptions-item label="预付款详情文件">请下载文件“付款通知书(预付款).pdf”</el-descriptions-item>
-            <el-descriptions-item label="账户可用余额">{{ accountStore.avaiableMoney }}</el-descriptions-item>
+            <el-descriptions-item label="预付款详情文件">请下载文件“付款通知书(预付款)”</el-descriptions-item>
+            <el-descriptions-item label="账户可用余额">{{ accountStore.avaiableMoney.toFixed(2) }}</el-descriptions-item>
         </el-descriptions>
         <template #footer>
             <el-button @click="onCancel(false)" plain>取消</el-button>

+ 5 - 4
src/packages/pc/views/customs/bonded/components/payment/index.vue

@@ -2,7 +2,7 @@
 <template>
     <app-drawer title="确认付款" :width="800" v-model:show="show" :loading="loading" :refresh="refresh">
         <el-descriptions :column="2" border v-if="details">
-            <el-descriptions-item label="单据编号">{{ selectedRow.orderid }}</el-descriptions-item>
+            <el-descriptions-item label="单据编号">{{ handleNoneValue(selectedRow.orderno) }}</el-descriptions-item>
             <el-descriptions-item label="综合服务费">{{ details.servicefee }}</el-descriptions-item>
             <el-descriptions-item label="代缴物流保险费">{{ details.logisticsfee }}</el-descriptions-item>
             <el-descriptions-item label="税费保证金">{{ details.taxmargin }}</el-descriptions-item>
@@ -11,9 +11,9 @@
             <el-descriptions-item label="总应收款">{{ details.settleamount }}</el-descriptions-item>
             <el-descriptions-item label="预收款">{{ details.advanceamount }}</el-descriptions-item>
             <el-descriptions-item label="应收\退款">{{ arrearage.toFixed(2) }}</el-descriptions-item>
-            <el-descriptions-item label="结算费用详情文件">请下载文件“付款通知书(结算费用).pdf”</el-descriptions-item>
-            <el-descriptions-item label="账户可用余额" v-if="arrearage >= 0">{{ accountStore.avaiableMoney.toFixed(2)
-            }}</el-descriptions-item>
+            <el-descriptions-item label="结算费用详情文件">请下载文件“付款通知书(结算费用)”</el-descriptions-item>
+            <el-descriptions-item label="账户可用余额" v-if="arrearage >= 0">{{
+                accountStore.avaiableMoney.toFixed(2) }}</el-descriptions-item>
         </el-descriptions>
         <template #footer>
             <el-button @click="onCancel(false)" plain>取消</el-button>
@@ -25,6 +25,7 @@
 <script lang="ts" setup>
 import { shallowRef, PropType, computed } from 'vue'
 import { ElMessage } from 'element-plus'
+import { handleNoneValue } from '@/filters'
 import { useAccountStore } from '@/stores'
 import { useBSFWOrderOperate, useBSFWMemberOperate } from '@/business/customs/bonded'
 import AppDrawer from '@pc/components/base/drawer/index.vue'

+ 2 - 2
src/packages/pc/views/customs/exit/components/advance-payment/index.vue

@@ -10,8 +10,8 @@
             <el-descriptions-item label="综合服务费">{{ details.servicefee }}</el-descriptions-item>
             <el-descriptions-item label="其它费用">{{ details.otherfee }}</el-descriptions-item>
             <el-descriptions-item label="总共">{{ details.totalfee }}</el-descriptions-item>
-            <el-descriptions-item label="预付款详情文件">请下载文件“付款通知书(预付款).pdf”</el-descriptions-item>
-            <el-descriptions-item label="账户可用余额">{{ accountStore.avaiableMoney }}</el-descriptions-item>
+            <el-descriptions-item label="预付款详情文件">请下载文件“付款通知书(预付款)”</el-descriptions-item>
+            <el-descriptions-item label="账户可用余额">{{ accountStore.avaiableMoney.toFixed(2) }}</el-descriptions-item>
         </el-descriptions>
         <template #footer>
             <el-button @click="onCancel(false)" plain>取消</el-button>

+ 2 - 1
src/packages/pc/views/customs/exit/components/details/index.vue

@@ -9,7 +9,7 @@
             <p>本表将作为委托方委托广州钻石交易中心办理出境检测业务申请使用,敬请务必如实填写公司信息、货物资料,并盖章确认。广州钻石交易中心根据此表确认信息,作为接受委托办理该批货物出境检测业务的凭证,仅对数量负责。</p>
         </div>
         <el-descriptions title="委托方信息" :column="2" border>
-            <el-descriptions-item width="120" label="单据编号">{{ selectedRow.orderidstr }}</el-descriptions-item>
+            <el-descriptions-item width="120" label="单据编号">{{ handleNoneValue(selectedRow.orderno) }}</el-descriptions-item>
             <el-descriptions-item width="120" label="送检账户" v-if="selectedRow.gzcjaccounttype === 1">{{
                 selectedRow.gzcjaccount
             }}</el-descriptions-item>
@@ -45,6 +45,7 @@
 
 <script lang="ts" setup>
 import { shallowRef, PropType } from 'vue'
+import { handleNoneValue } from '@/filters'
 import { getGZCJMarkTypeName, getGZCJStatusList, getGZCJShapeTypeName } from '@/constants/customs'
 import { useGZCJJCOrderDetail } from '@/business/customs/exit'
 import AppDrawer from '@pc/components/base/drawer/index.vue'

+ 3 - 3
src/packages/pc/views/customs/exit/components/payment/index.vue

@@ -12,9 +12,9 @@
             <el-descriptions-item label="总共">{{ details.settleamount }}</el-descriptions-item>
             <el-descriptions-item label="预收款">{{ details.advanceamount }}</el-descriptions-item>
             <el-descriptions-item label="应收\退款">{{ arrearage.toFixed(2) }}</el-descriptions-item>
-            <el-descriptions-item label="结算费用详情文件">请下载文件“付款通知书(结算费用).pdf”</el-descriptions-item>
-            <el-descriptions-item label="账户可用余额"
-                v-if="arrearage >= 0">{{ accountStore.avaiableMoney.toFixed(2) }}</el-descriptions-item>
+            <el-descriptions-item label="结算费用详情文件">请下载文件“付款通知书(结算费用)”</el-descriptions-item>
+            <el-descriptions-item label="账户可用余额" v-if="arrearage >= 0">{{
+                accountStore.avaiableMoney.toFixed(2) }}</el-descriptions-item>
         </el-descriptions>
         <template #footer>
             <el-button @click="onCancel(false)" plain>取消</el-button>

+ 3 - 3
src/packages/pc/views/home/main/index.vue

@@ -9,15 +9,15 @@
                 <h2>{{ countData.transactioninpurchase }}</h2>
                 <p>求购中的交易</p>
             </el-card>
-            <el-card @click="routerTo('trade_delisting', { buyorsell: BuyOrSell.Buy })">
+            <el-card @click="routerTo('order_buy', { buyorsell: BuyOrSell.Buy })">
                 <h2>{{ countData.purchasedtransactions }}</h2>
                 <p>已购买的交易</p>
             </el-card>
-            <el-card @click="routerTo('trade_delisting', { buyorsell: BuyOrSell.Sell })">
+            <el-card @click="routerTo('order_sell', { buyorsell: BuyOrSell.Sell })">
                 <h2>{{ countData.transactionssold }}</h2>
                 <p>已卖出的交易</p>
             </el-card>
-            <el-card @click="routerTo('trade_bargain')">
+            <el-card @click="routerTo('bargain_buy')">
                 <h2>{{ countData.unhandledmessage }}</h2>
                 <p>未处理消息</p>
             </el-card>

+ 102 - 11
src/packages/pc/views/order/main/components/edit/index.vue

@@ -1,19 +1,49 @@
 <!-- 订单管理-我的履约-修改联络信息 -->
 <template>
-    <app-drawer title="买方联络信息" :width="480" v-model:show="show" :loading="loading" :refresh="refresh">
+    <app-drawer title="联络信息" :width="512" v-model:show="show" :loading="loading" :refresh="refresh">
         <el-form ref="formRef" label-width="80px" :model="formData" :rules="formRules">
             <el-form-item label="履约计划">
                 <span>{{ handleNoneValue(selectedRow.curstepid) }}</span>
             </el-form-item>
             <el-form-item label="联络信息">
-                <el-input type="textarea" :rows="3" v-model="formData.contactInfo" />
+                <el-input type="textarea" :rows="3" v-model="formData.ContactInfo" />
             </el-form-item>
             <template v-if="code === 'order_buy_edit'">
                 <el-form-item label="收货地址">
-                    <app-address @change="addressChange" />
+                    <div class="el-form-item--col">
+                        <el-input type="textarea" :rows="2" v-model="formData.ReceiveInfo" />
+                        <el-dropdown trigger="click" v-if="addressList.length">
+                            <el-icon :size="20" style="cursor: pointer;">
+                                <CirclePlusFilled />
+                            </el-icon>
+                            <template #dropdown>
+                                <el-dropdown-menu>
+                                    <el-dropdown-item v-for="(item, index) in addressList" :key="index"
+                                        @click="addressChange(item)">
+                                        {{ [item.provincename, item.cityname, item.districtname, item.address].join(' ') }}
+                                    </el-dropdown-item>
+                                </el-dropdown-menu>
+                            </template>
+                        </el-dropdown>
+                    </div>
                 </el-form-item>
                 <el-form-item label="发票信息">
-                    <app-invoice @change="invoiceChange" />
+                    <div class="el-form-item--col">
+                        <el-input type="textarea" :rows="2" v-model="formData.ReceiptInfo" />
+                        <el-dropdown trigger="click" v-if="invoiceList.length">
+                            <el-icon :size="20" style="cursor: pointer;">
+                                <CirclePlusFilled />
+                            </el-icon>
+                            <template #dropdown>
+                                <el-dropdown-menu>
+                                    <el-dropdown-item v-for="(item, index) in invoiceList" :key="index"
+                                        @click="invoiceChange(item)">
+                                        {{ [getReceiptTypeName(item.receipttype), item.username].join(' ') }}
+                                    </el-dropdown-item>
+                                </el-dropdown-menu>
+                            </template>
+                        </el-dropdown>
+                    </div>
                 </el-form-item>
             </template>
         </el-form>
@@ -25,13 +55,14 @@
 </template>
 
 <script lang="ts" setup>
-import { ref, PropType } from 'vue'
+import { ref, PropType, onMounted } from 'vue'
 import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleNoneValue } from '@/filters'
+import { getReceiptTypeName } from '@/constants/receipt'
+import { useRequest } from '@/hooks/request'
+import { queryUserReceiveInfo, queryWrUserReceiptInfo } from '@/services/api/user'
 import { usePerformanceModify } from '@/business/order'
 import AppDrawer from '@pc/components/base/drawer/index.vue'
-import AppAddress from '@pc/components/modules/address/index.vue'
-import AppInvoice from '@pc/components/modules/invoice/index.vue'
 
 const props = defineProps({
     code: String,
@@ -47,14 +78,55 @@ const refresh = ref(false)
 const formRef = ref<FormInstance>()
 const formRules: FormRules = {}
 
+const { dataList: addressList } = useRequest(queryUserReceiveInfo)
+const { dataList: invoiceList } = useRequest(queryWrUserReceiptInfo)
+
 // 选择地址
-const addressChange = (item?: Ermcp.UserReceiveInfoRsp) => {
-    formData.address = item
+const addressChange = (item: Ermcp.UserReceiveInfoRsp) => {
+    formData.ReceiveInfo = [item.provincename, item.cityname, item.districtname, item.address].join(' ')
 }
 
 // 选择发票
-const invoiceChange = (item?: Ermcp.WrUserReceiptInfoRsp) => {
-    formData.invoice = item
+const invoiceChange = (item: Ermcp.WrUserReceiptInfoRsp) => {
+    formData.ReceiptInfo = ''
+    Object.entries(item).forEach(([key, value]) => {
+        if (value !== '') {
+            switch (key) {
+                case 'receipttype': {
+                    formData.ReceiptInfo += '发票类型:' + getReceiptTypeName(Number(value)) + '\n'
+                    break
+                }
+                case 'username': {
+                    formData.ReceiptInfo += '户名:' + value + '\n'
+                    break
+                }
+                case 'address': {
+                    formData.ReceiptInfo += '地址:' + value + '\n'
+                    break
+                }
+                case 'contactinfo': {
+                    formData.ReceiptInfo += '联系方式:' + value + '\n'
+                    break
+                }
+                case 'idnum': {
+                    formData.ReceiptInfo += '身份证号码:' + value + '\n'
+                    break
+                }
+                case 'receiptaccount': {
+                    formData.ReceiptInfo += '发票帐号:' + value + '\n'
+                    break
+                }
+                case 'receiptbank': {
+                    formData.ReceiptInfo += '发票开户行:' + value + '\n'
+                    break
+                }
+                case 'taxpayerid': {
+                    formData.ReceiptInfo += '纳税人识别号:' + value + '\n'
+                    break
+                }
+            }
+        }
+    })
 }
 
 const onCancel = (isRefresh = false) => {
@@ -74,4 +146,23 @@ const onSubmit = () => {
         }
     })
 }
+
+onMounted(() => {
+    switch (props.code) {
+        case 'order_buy_edit':
+            if (props.selectedRow.buyerinfo) {
+                const res = JSON.parse(props.selectedRow.buyerinfo)
+                formData.ContactInfo = res.ContactInfo
+                formData.ReceiveInfo = res.ReceiveInfo
+                formData.ReceiptInfo = res.ReceiptInfo
+            }
+            break
+        case 'order_sell_edit':
+            if (props.selectedRow.sellerinfo) {
+                const res = JSON.parse(props.selectedRow.sellerinfo)
+                formData.ContactInfo = res.ContactInfo
+            }
+            break
+    }
+})
 </script>

+ 13 - 9
src/packages/pc/views/trade/buy/components/details/index.vue

@@ -29,27 +29,31 @@
                         </li>
                         <li>
                             <span>尺寸</span>
-                            <span>{{ handleNoneValue(selectedRow.zssize) }}</span>
+                            <span>{{ handleNoneValue(selectedRow.zssizedisplay) }}</span>
                         </li>
                         <li>
                             <span>形状</span>
                             <span>{{ handleNoneValue(selectedRow.zsshapetypedisplay) }}</span>
                         </li>
                         <li>
-                            <span>净度</span>
-                            <span>{{ handleNoneValue(selectedRow.zsclaritytypedisplay) }}</span>
-                        </li>
-                        <li>
-                            <span>对称度</span>
-                            <span>{{ handleNoneValue(selectedRow.zssymmetrytypedisplay) }}</span>
+                            <span>切工</span>
+                            <span>{{ handleNoneValue(selectedRow.zscuttypedisplay) }}</span>
                         </li>
                         <li>
                             <span>颜色</span>
                             <span>{{ handleNoneValue(selectedRow.zscolortypedisplay) }}</span>
                         </li>
                         <li>
-                            <span>切工</span>
-                            <span>{{ handleNoneValue(selectedRow.zscuttypedisplay) }}</span>
+                            <span>抛光</span>
+                            <span>{{ handleNoneValue(selectedRow.zspolishtypedisplay) }}</span>
+                        </li>
+                        <li>
+                            <span>净度</span>
+                            <span>{{ handleNoneValue(selectedRow.zsclaritytypedisplay) }}</span>
+                        </li>
+                        <li>
+                            <span>对称</span>
+                            <span>{{ handleNoneValue(selectedRow.zssymmetrytypedisplay) }}</span>
                         </li>
                         <li>
                             <span>荧光</span>

+ 4 - 0
src/packages/pc/views/warehousing/goods/components/details/index.less

@@ -81,6 +81,10 @@
                     display: flex;
                     flex-wrap: wrap;
 
+                    &:not(:first-child) {
+                        margin-top: 8px;
+                    }
+
                     li {
                         width: 25%;
                     }

+ 25 - 4
src/packages/pc/views/warehousing/goods/components/details/index.vue

@@ -36,11 +36,23 @@
                         <p>{{ details.remark }}</p>
                     </div>
                     <div class="sku-spec">
-                        <ul>
+                        <ul v-if="details.zscategory === Category.Jewelry">
+                            <li>
+                                <span>主石重量:</span>
+                                <span>{{ details.weight }}克拉</span>
+                            </li>
+                            <li>
+                                <span>款式:</span>
+                                <span>{{ details.zsstyletypedisplay }}</span>
+                            </li>
+                        </ul>
+                        <ul v-else>
                             <li>
                                 <span>克拉重量:</span>
                                 <span>{{ details.weight }}克拉</span>
                             </li>
+                        </ul>
+                        <ul>
                             <li>
                                 <span>价格:</span>
                                 <span>{{ details.zscurrencytypedisplayunit + formatDecimal(details.price) }}</span>
@@ -51,7 +63,8 @@
                             </li>
                             <li>
                                 <span>市场价:</span>
-                                <span>{{ details.zscurrencytypedisplayunit + formatDecimal(details.marketprice) }}</span>
+                                <span>{{ details.zscurrencytypedisplayunit +
+                                    handleNumberValue(formatDecimal(details.marketprice)) }}</span>
                             </li>
                         </ul>
                     </div>
@@ -114,6 +127,14 @@
                                 <span>证书编号</span>
                                 <span>{{ handleNoneValue(details.cerno) }}</span>
                             </li>
+                            <li>
+                                <span>镶嵌材料</span>
+                                <span>{{ handleNoneValue(details.settingmaterial) }}</span>
+                            </li>
+                            <li>
+                                <span>配石描述</span>
+                                <span>{{ handleNoneValue(details.stonedesc) }}</span>
+                            </li>
                         </ul>
                     </div>
                 </div>
@@ -133,8 +154,8 @@ export default defineComponent({
 
 <script lang="ts" setup>
 import { computed, PropType, defineAsyncComponent } from 'vue'
-import { getFileUrl, formatDecimal, handleNoneValue } from '@/filters'
-import { CurrencyType } from '@/constants/diamond'
+import { getFileUrl, formatDecimal, handleNoneValue, handleNumberValue } from '@/filters'
+import { Category, CurrencyType } from '@/constants/diamond'
 import { useLoginStore, useFavoriteStore, useExrateStore, usePerformanceStore } from '@/stores'
 import { useComponent } from '@/hooks/component'
 import { useDiamondDetails } from '@/business/goods'

+ 1 - 0
src/types/ermcp/trade.d.ts

@@ -276,6 +276,7 @@ declare namespace Ermcp {
         zsshapetype: string; // 形状 - 多个, 逗号分隔
         zsshapetypedisplay: string;
         zssize: string; // 尺寸 - 两个小数, 逗号分隔
+        zssizedisplay: string;
         zsstyletype: string; // 款式 - 多个, 逗号分隔
         zsstyletypedisplay: string;
         zssymmetrytype: string; // 对称度 - 两个, 逗号分隔