li.shaoyi 2 năm trước cách đây
mục cha
commit
21b2e14e39

+ 2 - 1
src/hooks/echarts/candlestick/options.ts

@@ -127,6 +127,7 @@ export function useOptions(dataset: EchartsDataset) {
                 {
                     name: 'K线',
                     type: 'candlestick',
+                    barWidth: '80%',
                     itemStyle: {
                         color: upColor,
                         color0: downColor,
@@ -209,7 +210,7 @@ export function useOptions(dataset: EchartsDataset) {
                     name: 'MACD',
                     type: 'bar',
                     sampling: 'average',
-                    barWidth: '20%',
+                    barWidth: '60%',
                     itemStyle: {
                         color: ({ data }) => {
                             const { macd } = data as { macd: number };

+ 50 - 56
src/packages/sbyj/views/delivery/components/completed/list/index.vue

@@ -1,63 +1,58 @@
 <!-- 水贝亿爵-我的交收-已完成 -->
 <template>
-    <app-view>
-        <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
-            :page-count="pageCount" @refresh="run">
-            <div class="g-order-list">
-                <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
-                    <div class="g-order-list__titlebar">
-                        <div class="left">
-                            <h4 :class="item.buyorsell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
-                                {{ item.buyorsell === BuyOrSell.Buy ? '买料: ' : '卖料: ' }}
-                                {{ item.goodscode + '/' + item.goodsname }}
-                            </h4>
-                        </div>
-                        <div class="right">
-                            <span>{{ getDeliveryStatusName(item.deliverystatus) }}</span>
-                        </div>
-                    </div>
-                    <div class="g-order-list__content">
-                        <ul>
-                            <li>
-                                <span>交收重量</span>
-                                <span>{{ item.deliveryqty }}{{ getGoodsUnitName(item.goodunitid) }}</span>
-                            </li>
-                            <li>
-                                <span>升贴水</span>
-                                <span>{{ item.deliverypremium }}</span>
-                            </li>
-                            <li>
-                                <span>交收价格</span>
-                                <span>{{ item.deliveryprice }}</span>
-                            </li>
-                            <li>
-                                <span>总货款</span>
-                                <span>{{ item.deliveryamount }}</span>
-                            </li>
-                            <li>
-                                <span>已付货款</span>
-                                <span>{{ item.payedamount }}</span>
-                            </li>
-                            <li>
-                                <span>冻结货款</span>
-                                <span>{{ item.freezeamount }}</span>
-                            </li>
-                            <li>
-                                <span>申请日期</span>
-                                <span>{{ formatDate(item.reqtime, 'YYYY-MM-DD') }}</span>
-                            </li>
-                        </ul>
-                    </div>
-                    <div class="g-order-list__btnbar">
-                        <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
-                        <Button size="small" @click="showComponent('paydetail', item)" round>货款明细</Button>
+    <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
+        :page-count="pageCount" @refresh="run">
+        <div class="g-order-list">
+            <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
+                <div class="g-order-list__titlebar">
+                    <div class="left">
+                        <h4 :class="item.buyorsell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
+                            {{ item.buyorsell === BuyOrSell.Buy ? '买料: ' : '卖料: ' }}
+                            {{ item.goodscode + '/' + item.goodsname }}
+                        </h4>
                     </div>
                 </div>
+                <div class="g-order-list__content">
+                    <ul>
+                        <li>
+                            <span>交收重量</span>
+                            <span>{{ item.deliveryqty }}{{ getGoodsUnitName(item.goodunitid) }}</span>
+                        </li>
+                        <li>
+                            <span>升贴水</span>
+                            <span>{{ item.deliverypremium }}</span>
+                        </li>
+                        <li>
+                            <span>交收价格</span>
+                            <span>{{ item.deliveryprice }}</span>
+                        </li>
+                        <li>
+                            <span>总货款</span>
+                            <span>{{ item.deliveryamount }}</span>
+                        </li>
+                        <li>
+                            <span>已付货款</span>
+                            <span>{{ item.payedamount }}</span>
+                        </li>
+                        <li>
+                            <span>冻结货款</span>
+                            <span>{{ item.freezeamount }}</span>
+                        </li>
+                        <li>
+                            <span>申请日期</span>
+                            <span>{{ formatDate(item.reqtime, 'YYYY-MM-DD') }}</span>
+                        </li>
+                    </ul>
+                </div>
+                <div class="g-order-list__btnbar">
+                    <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
+                    <Button size="small" @click="showComponent('paydetail', item)" round>货款明细</Button>
+                </div>
             </div>
-            <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
-                @closed="closeComponent" v-if="componentId" />
-        </app-pull-refresh>
-    </app-view>
+        </div>
+        <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)" @closed="closeComponent"
+            v-if="componentId" />
+    </app-pull-refresh>
 </template>
 
 <script lang="ts" setup>
@@ -71,7 +66,6 @@ import { useRequest } from '@/hooks/request'
 import { queryMyTradeGoodsDeliveryOfflines } from '@/services/api/order'
 import { Button } from 'vant'
 import AppPullRefresh from '@/packages/sbyj/components/base/pull-refresh/index.vue'
-import { getDeliveryStatusName } from '@/constants/order'
 
 const dataList = shallowRef<Model.MyTradeGoodsDeliveryOfflineRsp[]>([])
 const selectedRow = shallowRef<Model.MyTradeGoodsDeliveryOfflineRsp>()

+ 42 - 48
src/packages/sbyj/views/delivery/components/pending/list/index.vue

@@ -1,40 +1,36 @@
 <!-- 水贝亿爵-我的交收-待审核 -->
 <template>
-    <app-view>
-        <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
-            :page-count="pageCount" @refresh="run">
-            <div class="g-order-list">
-                <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
-                    <div class="g-order-list__titlebar">
-                        <div class="left">
-                            <h4 :class="item.buyorsell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
-                                {{ item.buyorsell === BuyOrSell.Buy ? '买料: ' : '卖料: ' }}
-                                {{ item.goodscode + '/' + item.goodsname }}
-                            </h4>
-                        </div>
-                        <div class="right">
-                            <span>{{ getDeliveryStatusName(item.deliverystatus) }}</span>
-                        </div>
+    <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
+        :page-count="pageCount" @refresh="run">
+        <div class="g-order-list">
+            <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
+                <div class="g-order-list__titlebar">
+                    <div class="left">
+                        <h4 :class="item.buyorsell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
+                            {{ item.buyorsell === BuyOrSell.Buy ? '买料: ' : '卖料: ' }}
+                            {{ item.goodscode + '/' + item.goodsname }}
+                        </h4>
                     </div>
-                    <div class="g-order-list__content">
-                        <ul>
-                            <li>
-                                <span>交收重量</span>
-                                <span>{{ item.deliveryqty }}{{ getGoodsUnitName(item.goodunitid) }}</span>
-                            </li>
-                            <li>
-                                <span>升贴水</span>
-                                <span>{{ item.deliverypremium }}</span>
-                            </li>
-                            <li>
-                                <span>交收价格</span>
-                                <span>{{ item.deliveryprice }}</span>
-                            </li>
-                            <li>
-                                <span>总货款</span>
-                                <span>{{ item.deliveryamount }}</span>
-                            </li>
-                            <!-- <li>
+                </div>
+                <div class="g-order-list__content">
+                    <ul>
+                        <li>
+                            <span>交收重量</span>
+                            <span>{{ item.deliveryqty }}{{ getGoodsUnitName(item.goodunitid) }}</span>
+                        </li>
+                        <li>
+                            <span>升贴水</span>
+                            <span>{{ item.deliverypremium }}</span>
+                        </li>
+                        <li>
+                            <span>交收价格</span>
+                            <span>{{ item.deliveryprice }}</span>
+                        </li>
+                        <li>
+                            <span>总货款</span>
+                            <span>{{ item.deliveryamount }}</span>
+                        </li>
+                        <!-- <li>
                                 <span>已付货款</span>
                                 <span>{{ item.payedamount }}</span>
                             </li>
@@ -42,21 +38,20 @@
                                 <span>冻结货款</span>
                                 <span>{{ item.freezeamount }}</span>
                             </li> -->
-                            <li>
-                                <span>申请日期</span>
-                                <span>{{ formatDate(item.reqtime, 'YYYY-MM-DD') }}</span>
-                            </li>
-                        </ul>
-                    </div>
-                    <div class="g-order-list__btnbar">
-                        <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
-                    </div>
+                        <li>
+                            <span>申请日期</span>
+                            <span>{{ formatDate(item.reqtime, 'YYYY-MM-DD') }}</span>
+                        </li>
+                    </ul>
+                </div>
+                <div class="g-order-list__btnbar">
+                    <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
                 </div>
             </div>
-            <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
-                @closed="closeComponent" v-if="componentId" />
-        </app-pull-refresh>
-    </app-view>
+        </div>
+        <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)" @closed="closeComponent"
+            v-if="componentId" />
+    </app-pull-refresh>
 </template>
 
 <script lang="ts" setup>
@@ -70,7 +65,6 @@ import { useRequest } from '@/hooks/request'
 import { queryMyTradeGoodsDeliveryOfflines } from '@/services/api/order'
 import { Button } from 'vant'
 import AppPullRefresh from '@/packages/sbyj/components/base/pull-refresh/index.vue'
-import { getDeliveryStatusName } from '@/constants/order'
 
 const dataList = shallowRef<Model.MyTradeGoodsDeliveryOfflineRsp[]>([])
 const selectedRow = shallowRef<Model.MyTradeGoodsDeliveryOfflineRsp>()

+ 53 - 60
src/packages/sbyj/views/delivery/components/processing/list/index.vue

@@ -1,67 +1,61 @@
 <!-- 水贝亿爵-我的交收-进行中 -->
 <template>
-    <app-view>
-        <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
-            :page-count="pageCount" @refresh="run">
-            <div class="g-order-list">
-                <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
-                    <div class="g-order-list__titlebar">
-                        <div class="left">
-                            <h4 :class="item.buyorsell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
-                                {{ item.buyorsell === BuyOrSell.Buy ? '买料: ' : '卖料: ' }}
-                                {{ item.goodscode + '/' + item.goodsname }}
-                            </h4>
-                        </div>
-                        <div class="right">
-                            <span>{{ getDeliveryStatusName(item.deliverystatus) }}</span>
-                        </div>
-                    </div>
-                    <div class="g-order-list__content">
-                        <ul>
-                            <li>
-                                <span>交收重量</span>
-                                <span>{{ item.deliveryqty }}{{ getGoodsUnitName(item.goodunitid) }}</span>
-                            </li>
-                            <li>
-                                <span>升贴水</span>
-                                <span>{{ item.deliverypremium }}</span>
-                            </li>
-                            <li>
-                                <span>交收价格</span>
-                                <span>{{ item.deliveryprice }}</span>
-                            </li>
-                            <li>
-                                <span>总货款</span>
-                                <span>{{ item.deliveryamount }}</span>
-                            </li>
-                            <li>
-                                <span>已付货款</span>
-                                <span>{{ item.payedamount }}</span>
-                            </li>
-                            <li>
-                                <span>冻结货款</span>
-                                <span>{{ item.freezeamount }}</span>
-                            </li>
-                            <li>
-                                <span>申请日期</span>
-                                <span>{{ formatDate(item.reqtime, 'YYYY-MM-DD') }}</span>
-                            </li>
-                        </ul>
-                    </div>
-                    <div class="g-order-list__btnbar">
-                        <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
-                        <Button size="small" @click="showComponent('paydetail', item)" round>货款明细</Button>
-                        <Button size="small" v-if="item.deliverystatus === 2" @click="deliveryCommit(item)"
-                            round>确认</Button>
-                        <Button size="small" v-if="[3, 4].includes(item.deliverystatus)" @click="showComponent('pay', item)"
-                            round>付款</Button>
+    <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
+        :page-count="pageCount" @refresh="run">
+        <div class="g-order-list">
+            <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
+                <div class="g-order-list__titlebar">
+                    <div class="left">
+                        <h4 :class="item.buyorsell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
+                            {{ item.buyorsell === BuyOrSell.Buy ? '买料: ' : '卖料: ' }}
+                            {{ item.goodscode + '/' + item.goodsname }}
+                        </h4>
                     </div>
                 </div>
+                <div class="g-order-list__content">
+                    <ul>
+                        <li>
+                            <span>交收重量</span>
+                            <span>{{ item.deliveryqty }}{{ getGoodsUnitName(item.goodunitid) }}</span>
+                        </li>
+                        <li>
+                            <span>升贴水</span>
+                            <span>{{ item.deliverypremium }}</span>
+                        </li>
+                        <li>
+                            <span>交收价格</span>
+                            <span>{{ item.deliveryprice }}</span>
+                        </li>
+                        <li>
+                            <span>总货款</span>
+                            <span>{{ item.deliveryamount }}</span>
+                        </li>
+                        <li>
+                            <span>已付货款</span>
+                            <span>{{ item.payedamount }}</span>
+                        </li>
+                        <li>
+                            <span>冻结货款</span>
+                            <span>{{ item.freezeamount }}</span>
+                        </li>
+                        <li>
+                            <span>申请日期</span>
+                            <span>{{ formatDate(item.reqtime, 'YYYY-MM-DD') }}</span>
+                        </li>
+                    </ul>
+                </div>
+                <div class="g-order-list__btnbar">
+                    <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
+                    <Button size="small" @click="showComponent('paydetail', item)" round>货款明细</Button>
+                    <Button size="small" v-if="item.deliverystatus === 2" @click="deliveryCommit(item)" round>确认</Button>
+                    <Button size="small" v-if="[3, 4].includes(item.deliverystatus)" @click="showComponent('pay', item)"
+                        round>付款</Button>
+                </div>
             </div>
-            <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
-                @closed="closeComponent" v-if="componentId" />
-        </app-pull-refresh>
-    </app-view>
+        </div>
+        <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)" @closed="closeComponent"
+            v-if="componentId" />
+    </app-pull-refresh>
 </template>
 
 <script lang="ts" setup>
@@ -76,7 +70,6 @@ import { queryMyTradeGoodsDeliveryOfflines } from '@/services/api/order'
 import { Button } from 'vant'
 import { fullloading, dialog } from '@/utils/vant'
 import AppPullRefresh from '@/packages/sbyj/components/base/pull-refresh/index.vue'
-import { getDeliveryStatusName } from '@/constants/order'
 import { deliveryClientOperator } from '@/services/api/trade'
 
 const dataList = shallowRef<Model.MyTradeGoodsDeliveryOfflineRsp[]>([])

+ 75 - 0
src/packages/sbyj/views/delivery/detail/file-list/index.vue

@@ -0,0 +1,75 @@
+<!-- 水贝亿爵-我的交收-详情-文件列表 -->
+<template>
+    <app-modal direction="right" height="100%" v-model:show="showModal">
+        <app-view class="g-form">
+            <template #header>
+                <app-navbar title="文件列表" @back="closed" />
+            </template>
+            <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error"
+                v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="run">
+                <CellGroup inset>
+                    <template v-for="(item, index) in dataList" :key="index">
+                        <Cell :title="item.operatetime" :label="item.remark">
+                            <template #value>
+                                {{ getImages(item.fileaddress) }}
+                            </template>
+                        </Cell>
+                    </template>
+                </CellGroup>
+            </app-pull-refresh>
+        </app-view>
+    </app-modal>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, PropType } from 'vue'
+import { CellGroup, Cell } from 'vant'
+import { getFileUrl } from '@/filters'
+import { useRequest } from '@/hooks/request'
+import { queryMyDeliveryOfflineOperateLogs } from '@/services/api/order'
+import AppModal from '@/components/base/modal/index.vue'
+import AppPullRefresh from '../../../../components/base/pull-refresh/index.vue'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Model.MyTradeGoodsDeliveryOfflineRsp>,
+        required: true,
+    }
+})
+
+const showModal = shallowRef(true)
+const error = shallowRef(false)
+const dataList = shallowRef<Model.MyDeliveryOfflineOperateLogRsp[]>([])
+
+const { loading, pageIndex, pageCount, run } = useRequest(queryMyDeliveryOfflineOperateLogs, {
+    params: {
+        pagesize: 20,
+        operatetype: 3,
+        deliveryorderid: props.selectedRow.deliveryorderid
+    },
+    onSuccess: (res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res.data)
+    },
+    onError: () => {
+        error.value = true
+    }
+})
+
+const getImages = (fileAddress: string) => {
+    const files = fileAddress.split(',')
+    return files.map((url) => getFileUrl(url))
+}
+
+// 关闭弹窗
+const closed = () => {
+    showModal.value = false
+}
+
+// 暴露组件属性给父组件调用
+defineExpose({
+    closed,
+})
+</script>

+ 22 - 71
src/packages/sbyj/views/delivery/detail/index.vue

@@ -1,17 +1,11 @@
-水贝亿爵 - 我的交收 - 详情
+<!-- 水贝亿爵-我的交收-详情 -->
 <template>
     <app-modal direction="right" height="100%" v-model:show="showModal" :refresh="refresh">
         <app-view class="g-form">
             <template #header>
-                <app-navbar title="交收详情" @back="closed">
-                    <template #right>
-                    <div class="button-more">
-                        <span>文件列表</span>
-                    </div>
-                </template>
-                </app-navbar>
+                <app-navbar title="交收详情" @back="closed" />
             </template>
-            <div class="order-detail__container g-form__container">
+            <div class="g-form__container">
                 <CellGroup inset>
                     <Cell title="交收单号" :value="selectedRow.deliveryorderid" />
                     <Cell title="商品代码/名称" :value="selectedRow.goodscode + '/' + selectedRow.goodsname" />
@@ -23,83 +17,40 @@
                     <Cell title="冻结货款" :value="selectedRow.freezeamount" />
                     <Cell title="申请时间" :value="selectedRow.reqtime" />
                 </CellGroup>
+                <CellGroup inset>
+                    <Cell title="订单明细" is-link @click="openComponent('orderList')" />
+                    <Cell title="文件列表" is-link @click="openComponent('fileList')" />
+                </CellGroup>
             </div>
-            <div class="g-order-list">
-                <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
-                    <div class="g-order-list__titlebar">
-                        <div class="left">
-                            <h5 :class="item.buyorsell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'"> {{ item.buyorsell
-                                === BuyOrSell.Buy ? '买料订单: ' : '卖料订单: ' }}{{ item.tradeid
-    }} </h5>
-                        </div>
-                    </div>
-                    <div class="g-order-list__content">
-                        <ul>
-                            <li>
-                                <span>订单重量:</span>
-                                <span>{{ item.holdqty }}{{ getGoodsUnitName(selectedRow.goodunitid)
-                                }}</span>
-                            </li>
-                            <li>
-                                <span>交收重量:</span>
-                                <span>{{ item.deliveryqty }}{{
-                                    getGoodsUnitName(selectedRow.goodunitid) }}</span>
-                            </li>
-                            <li>
-                                <span>交收价格:</span>
-                                <span>{{ formatDecimal(item.deliveryprice) }}</span>
-                            </li>
-                            <li>
-                                <span>交收货款:</span>
-                                <span>{{ item.deliveryamount }}</span>
-                            </li>
-                        </ul>
-                    </div>
-                </div>
-            </div>
+            <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
+                @closed="closeComponent" v-if="componentId" />
         </app-view>
     </app-modal>
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, PropType } from 'vue'
+import { shallowRef, PropType, defineAsyncComponent } from 'vue'
 import { CellGroup, Cell } from 'vant'
-import { formatDate, formatDecimal, parsePercent } from '@/filters'
-import AppModal from '@/components/base/modal/index.vue'
-import { getBuyOrSellName, getWrTradeTypeName } from '@/constants/order'
+import { useComponent } from '@/hooks/component'
 import { getGoodsUnitName } from '@/constants/unit'
-import { useRequest } from '@/hooks/request'
-import { queryMyDeliveryofflinedetails } from '@/services/api/order'
-import { propsToAttrMap } from '@vue/shared'
-import { BuyOrSell } from '@/constants/order'
-
-const showModal = shallowRef(true)
-const refresh = shallowRef(false) // 是否刷新父组件数据
-const dataList = shallowRef<Model.MyDeliveryofflinedetailRsp[]>([]) // 订单明细
-const error = shallowRef(false)
+import AppModal from '@/components/base/modal/index.vue'
 
-const props = defineProps({
+defineProps({
     selectedRow: {
         type: Object as PropType<Model.MyTradeGoodsDeliveryOfflineRsp>,
         required: true,
     }
 })
 
-// 查询订单明细
-const { pageIndex } = useRequest(queryMyDeliveryofflinedetails, {
-    params: {
-        deliveryorderid: props.selectedRow.deliveryorderid
-    },
-    onSuccess: (res) => {
-        if (pageIndex.value === 1) {
-            dataList.value = []
-        }
-        dataList.value.push(...res.data)
-    },
-    onError: () => {
-        error.value = true
-    }
-})
+const componentMap = new Map<string, unknown>([
+    ['orderList', defineAsyncComponent(() => import('./order-list/index.vue'))], // 订单明细
+    ['fileList', defineAsyncComponent(() => import('./file-list/index.vue'))], // 文件列表
+])
+
+const showModal = shallowRef(true)
+const refresh = shallowRef(false) // 是否刷新父组件数据
+
+const { componentRef, componentId, openComponent, closeComponent } = useComponent()
 
 // 关闭弹窗
 const closed = (isRefresh = false) => {

+ 98 - 0
src/packages/sbyj/views/delivery/detail/order-list/index.vue

@@ -0,0 +1,98 @@
+<!-- 水贝亿爵-我的交收-详情-订单明细 -->
+<template>
+    <app-modal direction="right" height="100%" v-model:show="showModal">
+        <app-view class="g-form">
+            <template #header>
+                <app-navbar title="订单明细" @back="closed" />
+            </template>
+            <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error"
+                v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="run">
+                <div class="g-order-list">
+                    <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
+                        <div class="g-order-list__titlebar">
+                            <div class="left">
+                                <h4 :class="item.buyorsell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
+                                    {{ item.buyorsell === BuyOrSell.Buy ? '买料订单: ' : '卖料订单: ' }}
+                                    {{ item.tradeid }}
+                                </h4>
+                            </div>
+                        </div>
+                        <div class="g-order-list__content">
+                            <ul>
+                                <li>
+                                    <span>订单重量:</span>
+                                    <span>
+                                        {{ item.holdqty + getGoodsUnitName(selectedRow.goodunitid) }}
+                                    </span>
+                                </li>
+                                <li>
+                                    <span>交收重量:</span>
+                                    <span>
+                                        {{ item.deliveryqty + getGoodsUnitName(selectedRow.goodunitid) }}
+                                    </span>
+                                </li>
+                                <li>
+                                    <span>交收价格:</span>
+                                    <span>{{ formatDecimal(item.deliveryprice) }}</span>
+                                </li>
+                                <li>
+                                    <span>交收货款:</span>
+                                    <span>{{ item.deliveryamount }}</span>
+                                </li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </app-pull-refresh>
+        </app-view>
+    </app-modal>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, PropType } from 'vue'
+import { formatDecimal } from '@/filters'
+import { BuyOrSell } from '@/constants/order'
+import { getGoodsUnitName } from '@/constants/unit'
+import { useRequest } from '@/hooks/request'
+import { queryMyDeliveryofflinedetails } from '@/services/api/order'
+import AppModal from '@/components/base/modal/index.vue'
+import AppPullRefresh from '../../../../components/base/pull-refresh/index.vue'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Model.MyTradeGoodsDeliveryOfflineRsp>,
+        required: true,
+    }
+})
+
+const showModal = shallowRef(true)
+const error = shallowRef(false)
+const dataList = shallowRef<Model.MyDeliveryofflinedetailRsp[]>([]) // 订单明细
+
+// 查询订单明细
+const { loading, pageIndex, pageCount, run } = useRequest(queryMyDeliveryofflinedetails, {
+    params: {
+        pagesize: 20,
+        deliveryorderid: props.selectedRow.deliveryorderid
+    },
+    onSuccess: (res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res.data)
+    },
+    onError: () => {
+        error.value = true
+    }
+})
+
+// 关闭弹窗
+const closed = () => {
+    showModal.value = false
+}
+
+// 暴露组件属性给父组件调用
+defineExpose({
+    closed,
+})
+</script>

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

@@ -32,7 +32,8 @@
             </template>
           </Cell>
           <template v-for="(item, index) in newsList" :key="index">
-            <Cell class="article-item" :title="item.data.content" :value="formatDate(item.time, 'MM/DD')" />
+            <Cell class="article-item" :title="item.data.content" :value="formatDate(item.time, 'MM/DD')"
+              @click="switchTab(2)" />
           </template>
         </CellGroup>
       </app-block>
@@ -79,7 +80,7 @@ const onRefresh = () => {
   // 市场资讯
   getJ10News({
     data: {
-      limit: 20
+      limit: 10
     }
   }).then((res) => {
     newsList.value = res.data

+ 11 - 10
src/packages/sbyj/views/market/detail/index.vue

@@ -3,15 +3,15 @@
         <template #header>
             <app-navbar :title="quote?.goodsname" />
         </template>
-        <div class="market-detail__form">
+        <div class="market-detail__form" v-if="quote">
             <div class="form-price">
                 <dl>
                     <dt>回购价</dt>
-                    <dd :class="quote?.bidColor">{{ quote?.bid }}</dd>
+                    <dd :class="quote.bidColor">{{ handleNumberValue(formatDecimal(quote.bid, quote.decimalplace)) }}</dd>
                 </dl>
                 <dl>
                     <dt>销售价</dt>
-                    <dd :class="quote?.askColor">{{ quote?.ask }}</dd>
+                    <dd :class="quote.askColor">{{ handleNumberValue(formatDecimal(quote.ask, quote.decimalplace)) }}</dd>
                 </dl>
             </div>
             <Form ref="formRef" @submit="onSubmit">
@@ -20,11 +20,11 @@
                         <div class="g-qty-group">
                             <div class="g-qty-group__stepper">
                                 <Stepper v-model="orderQty" :min="0" :step="qtyStep" integer />
-                                <span>{{ getGoodsUnitName(quote?.goodunitid) }}</span>
+                                <span>{{ getGoodsUnitName(quote.goodunitid) }}</span>
                             </div>
                             <RadioGroup v-model="qtyStep" direction="horizontal" @change="onRadioChange">
                                 <Radio v-for="(value, index) in qtyStepList" :key="index" :name="value">
-                                    {{ value + getGoodsUnitName(quote?.goodunitid) }}
+                                    {{ value + getGoodsUnitName(quote.goodunitid) }}
                                 </Radio>
                             </RadioGroup>
                         </div>
@@ -41,14 +41,15 @@
                 <div class="g-order-list__box" v-for="(item, index) in orderComputedList" :key="index">
                     <div class="g-order-list__titlebar">
                         <div class="left">
-                            <h4>
-                                {{ item.tHDetailEx.buyOrSell === BuyOrSell.Buy ? '买料订单:' : '卖料订单:' }}
-                                {{ item.tHDetailEx.tradeID }}
+                            <h4 :class="item.tHDetailEx.buyOrSell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
+                                {{ item.tHDetailEx.buyOrSell === BuyOrSell.Buy ? '买料:' : '卖料:' }}
+                                {{ item.goodsCode + '/' + item.goodsName }}
                             </h4>
                         </div>
                         <div class="right">
-                            <span :class="item.tHDetailEx.depositRate <= 0.4 ? 'g-price-up' : ''">{{
-                                parsePercent(item.tHDetailEx.depositRate) }}</span>
+                            <span
+                                :class="item.tHDetailEx.depositRate <= item.tHDetailEx.promptDepositRate ? 'g-price-up' : ''">{{
+                                    parsePercent(item.tHDetailEx.depositRate) }}</span>
                         </div>
                     </div>
                     <div class="g-order-list__content">

+ 1 - 2
src/packages/sbyj/views/order/detail/index.vue

@@ -30,8 +30,7 @@
                         :value="(detail.tHDetailEx.freezeQty * detail.agreeUnit) + getGoodsUnitName(detail.goodsUnitID)" />
                     <Cell title="交收重量"
                         :value="(detail.tHDetailEx.deliveryQty * detail.agreeUnit) + getGoodsUnitName(detail.goodsUnitID)" />
-                    <Cell title="订单时间"
-                        :value="(detail.tHDetailEx.deliveryQty * detail.agreeUnit) + getGoodsUnitName(detail.goodsUnitID)" />
+                    <Cell title="订单时间" :value="detail.tHDetailEx.tradeTime" />
                 </CellGroup>
             </div>
         </app-view>

+ 8 - 2
src/packages/sbyj/views/order/list/components/close-holder/index.vue

@@ -7,8 +7,7 @@
             </template>
             <Form ref="formRef" class="g-form__container" @submit="onSubmit">
                 <CellGroup inset>
-                    <Cell title="可用重量"
-                        :value="((selectedRow.tHDetailEx.holderPrice - selectedRow.tHDetailEx.freezeQty) * selectedRow.agreeUnit) + getGoodsUnitName(selectedRow.goodsUnitID)" />
+                    <Cell title="可用重量" :value="formatDecimal(enableqty) + getGoodsUnitName(selectedRow.goodsUnitID)" />
                     <Field name="OrderQty" label="转让重量" :rules="formRules.OrderQty">
                         <template #input>
                             <div class="g-qty-group">
@@ -39,6 +38,7 @@
 import { shallowRef, PropType, onMounted, onUnmounted, computed } from 'vue'
 import { CellGroup, Cell, Button, Stepper, Field, Form, FormInstance, FieldRule, RadioGroup, Radio } from 'vant'
 import { fullloading } from '@/utils/vant'
+import { formatDecimal } from '@/filters'
 import AppModal from '@/components/base/modal/index.vue'
 import { getGoodsUnitName } from '@/constants/unit'
 import { useOrder } from '@/business/trade'
@@ -75,6 +75,12 @@ const qtyStepList = computed(() => {
     ]
 })
 
+// 可用重量
+const enableqty = computed(() => {
+    const { tHDetailEx, agreeUnit } = props.selectedRow
+    return (tHDetailEx.holderPrice - tHDetailEx.freezeQty) * agreeUnit
+})
+
 // 表单验证规则
 const formRules: { [key in keyof Proto.OrderReq]?: FieldRule[] } = {
     OrderQty: [{

+ 8 - 2
src/packages/sbyj/views/order/list/components/market-order-delivery/index.vue

@@ -7,8 +7,7 @@
             </template>
             <Form ref="formRef" class="g-form__container" @submit="onSubmit">
                 <CellGroup inset>
-                    <Cell title="可用重量"
-                        :value="((selectedRow.tHDetailEx.holderPrice - selectedRow.tHDetailEx.freezeQty) * selectedRow.agreeUnit) + getGoodsUnitName(selectedRow.goodsUnitID)" />
+                    <Cell title="可用重量" :value="formatDecimal(enableqty) + getGoodsUnitName(selectedRow.goodsUnitID)" />
                     <Field name="OrderQty" label="交收重量" :rules="formRules.OrderQty">
                         <template #input>
                             <div class="g-qty-group">
@@ -39,6 +38,7 @@
 import { shallowRef, PropType, onMounted, computed, reactive } from 'vue'
 import { CellGroup, Cell, Button, Stepper, Field, Form, FormInstance, FieldRule, RadioGroup, Radio } from 'vant'
 import { fullloading } from '@/utils/vant'
+import { formatDecimal } from '@/filters'
 import AppModal from '@/components/base/modal/index.vue'
 import { marketOrderDeliveryApply } from '@/services/api/trade'
 import { getGoodsUnitName } from '@/constants/unit'
@@ -68,6 +68,12 @@ const qtyStepList = computed(() => {
     ]
 })
 
+// 可用重量
+const enableqty = computed(() => {
+    const { tHDetailEx, agreeUnit } = props.selectedRow
+    return (tHDetailEx.holderPrice - tHDetailEx.freezeQty) * agreeUnit
+})
+
 // 表单验证规则
 const formRules: { OrderQty?: FieldRule[] } = {
     OrderQty: [{

+ 3 - 2
src/packages/sbyj/views/order/list/index.vue

@@ -8,13 +8,14 @@
                 <div class="g-order-list__box" v-for="(item, index) in orderComputedList" :key="index">
                     <div class="g-order-list__titlebar">
                         <div class="left">
-                            <h4>
+                            <h4 :class="item.tHDetailEx.buyOrSell === BuyOrSell.Buy ? 'g-price-up' : 'g-price-down'">
                                 {{ item.tHDetailEx.buyOrSell === BuyOrSell.Buy ? '买料:' : '卖料:' }}
                                 {{ item.goodsCode + '/' + item.goodsName }}
                             </h4>
                         </div>
                         <div class="right">
-                            <span :class="item.tHDetailEx.depositRate >= 0.4 ? 'g-price-up' : ''">
+                            <span
+                                :class="item.tHDetailEx.depositRate <= item.tHDetailEx.promptDepositRate ? 'g-price-up' : ''">
                                 {{ parsePercent(item.tHDetailEx.depositRate) }}
                             </span>
                         </div>