Jelajahi Sumber

删除无用页面

朱永杰 2 minggu lalu
induk
melakukan
fe76c1912f
32 mengubah file dengan 94 tambahan dan 6496 penghapusan
  1. 1 1
      package.json
  2. TEMPAT SAMPAH
      src/assets/images/logo.png
  3. 1 1
      src/config/index.js
  4. 4 4
      src/router/modules/dashboard.js
  5. 2 323
      src/router/modules/pages.js
  6. 0 143
      src/views/IntendedCustomers/IntendedCustomers.vue
  7. 0 304
      src/views/cattleTrdeValue/index.vue
  8. 0 887
      src/views/cattleTrdeValue/recondsInfo.vue
  9. 0 132
      src/views/cattleTrdeValue/referenceInfo.vue
  10. 0 315
      src/views/classifyManage/classifyManageIndex.vue
  11. 0 157
      src/views/contentManage/contentList.vue
  12. 0 211
      src/views/contentManage/contentTypeList.vue
  13. 0 249
      src/views/contentManage/newContent.vue
  14. 0 139
      src/views/intentManage/buyIntent.vue
  15. 0 163
      src/views/intentManage/sellIntent.vue
  16. 0 362
      src/views/orderManage/buyOrder.vue
  17. 0 169
      src/views/orderManage/contractManage.vue
  18. 0 474
      src/views/orderManage/orderDetail.vue
  19. 0 228
      src/views/orderManage/orderManageIndex.vue
  20. 0 385
      src/views/orderManage/sellOrder.vue
  21. 0 68
      src/views/protocol/addProtocol.vue
  22. 0 127
      src/views/protocol/index.vue
  23. 0 161
      src/views/quoteManage/buyQuote.vue
  24. 0 206
      src/views/quoteManage/sellQuote.vue
  25. 0 166
      src/views/quoteManage/sellQuoteAudit.vue
  26. 0 234
      src/views/requireManage/addNeeds.vue
  27. 0 269
      src/views/requireManage/editNeeds.vue
  28. 0 107
      src/views/requireManage/procurementDetail.vue
  29. 0 279
      src/views/requireManage/procurementNeeds.vue
  30. 0 81
      src/views/serviceFee/index.vue
  31. 0 76
      src/views/serviceFee/shopFeeList.vue
  32. 86 75
      src/views/system/login.vue

+ 1 - 1
package.json

@@ -1,5 +1,5 @@
 {
-  "name": "vue-admin",
+  "name": "vue-trackManager",
   "version": "0.1.0",
   "private": true,
   "scripts": {

TEMPAT SAMPAH
src/assets/images/logo.png


+ 1 - 1
src/config/index.js

@@ -1,5 +1,5 @@
 const showLogo = true; // 是否显示Logo顶部模块
-const systemTitle = '牛只交易管理系统' // 系统名称,用于显示在左上角模块,以及浏览器标题上使用,使用配置项
+const systemTitle = '爱养牛运单物流系统' // 系统名称,用于显示在左上角模块,以及浏览器标题上使用,使用配置项
 export {
   systemTitle
 }

+ 4 - 4
src/router/modules/dashboard.js

@@ -17,13 +17,13 @@ const route = [
   {
     path: '/',
     component: Layout,
-    redirect: '/classifyManageIndex',
+    redirect: '/home',
     meta: { title: '', icon: 'icon-bingtutongji' },
     children: [
       {
-        path: 'classifyManageIndex',
-        component: createNameComponent(() => import('@/views/classifyManage/classifyManageIndex.vue')),
-        meta: { title: '牛只分类', icon: 'icon-yingyong', hideClose: true }
+        path: 'home',
+        component: createNameComponent(() => import('@/views/dashboard/index.vue')),
+        meta: { title: '首页', icon: 'icon-yingyong', hideClose: true }
       }
     ]
   }

+ 2 - 323
src/router/modules/pages.js

@@ -1,345 +1,24 @@
 import Layout from '@/layout/index.vue'
 import { createNameComponent } from '../createNode'
 const route = [
-
-  /*   {
-      path: '/beefSaleManage',
-      component: Layout,
-      redirect: 'beefSaleManage/beefOnsaleList',
-      meta: { title: '牛只上架管理', icon: 'icon--nainiu' },
-      alwayShow: true,
-      children: [
-        {
-          path: 'beefSaleManage/addNewbeef',
-          component: createNameComponent(() => import('@/views/beefSaleManage/addNewbeef.vue')),
-          meta: { title: '新上架牛源', icon: '', cache: false },
-        },
-        {
-          path: 'beefSaleManage/beefOnsaleList',
-          component: createNameComponent(() => import('@/views/beefSaleManage/beefOnsaleList.vue')),
-          meta: { title: '销售中牛源', icon: '', cache: false },
-        },
-        {
-          path: 'beefSaleManage/beefInStore',
-          component: createNameComponent(() => import('@/views/beefSaleManage/beefInStore.vue')),
-          meta: { title: '仓库中牛只', icon: '', cache: false },
-        },
-        {
-          path: 'beefSaleManage/editBeef',
-          component: createNameComponent(() => import('@/views/beefSaleManage/editBeef.vue')),
-          meta: { title: '编辑商品', hideMenuItem: true, cache: false },
-        },
-      ]
-    }, */
-  /*   {
-      path: '/requireManage',
-      component: Layout,
-      redirect: 'requireManage/procurementNeeds',
-      meta: { title: '采购需求管理', icon: 'icon-caigoudingdan' },
-      children: [
-        {
-          path: 'procurementNeeds',
-          component: createNameComponent(() => import('@/views/requireManage/procurementNeeds.vue')),
-          meta: { title: '采购需求管理', cache: false, },
-        },
-        {
-          path: 'addNeeds',
-          component: createNameComponent(() => import('@/views/requireManage/addNeeds.vue')),
-          meta: { title: '新增采购需求', hideMenuItem: true, cache: false },
-        },
-        {
-          path: 'editNeeds',
-          component: createNameComponent(() => import('@/views/requireManage/editNeeds.vue')),
-          meta: { title: '编辑采购需求', hideMenuItem: true, cache: false },
-        },
-        {
-          path: 'procurementDetail',
-          component: createNameComponent(() => import('@/views/requireManage/procurementDetail.vue')),
-          meta: { title: '采购需求详情', hideMenuItem: true, cache: false },
-        },
-      ]
-    }, */
   {
     path: '/userPublishSellManage',
     component: Layout,
     redirect: 'userPublishManage/pubSaleInfo',
-    meta: { title: '卖牛信息管理', icon: 'icon-fabu' },
+    meta: { title: '运单管理', icon: 'icon-fabu' },
     children: [
       {
         path: 'pubSaleInfo/1',
         component: createNameComponent(() => import('@/views/userPublishManage/pubSaleInfo.vue')),
         meta: { title: '待审核', cache: false, },
       },
-      {
-        path: 'pubSaleInfo/2',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubSaleInfo.vue')),
-        meta: { title: '审核拒绝', cache: false, },
-      },
-      {
-        path: 'pubSaleInfo/3',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubSaleInfo.vue')),
-        meta: { title: '发布中', cache: false, },
-      },
-      {
-        path: 'pubSaleInfo/4',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubSaleInfo.vue')),
-        meta: { title: '强制下架', cache: false, },
-      },
-      {
-        path: 'pubSaleInfo/5',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubSaleInfo.vue')),
-        meta: { title: '已过期', cache: false, },
-      },
       {
         path: 'publishDetail',
         component: createNameComponent(() => import('@/views/userPublishManage/publishDetail.vue')),
         meta: { title: '发布详情', hideMenuItem: true, cache: false, },
       },
     ]
-  },
-  {
-    path: '/userPublishBuyManage',
-    component: Layout,
-    redirect: 'userPublishManage/pubSaleInfo',
-    meta: { title: '买牛信息管理', icon: 'icon-fabu' },
-    children: [
-      {
-        path: 'pubPurchaseInfo/1',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubPurchaseInfo.vue')),
-        meta: { title: '待审核', cache: false, },
-      },
-      {
-        path: 'pubPurchaseInfo/2',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubPurchaseInfo.vue')),
-        meta: { title: '审核拒绝', cache: false, },
-      },
-      {
-        path: 'pubPurchaseInfo/3',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubPurchaseInfo.vue')),
-        meta: { title: '发布中', cache: false, },
-      },
-      {
-        path: 'pubPurchaseInfo/4',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubPurchaseInfo.vue')),
-        meta: { title: '强制下架', cache: false, },
-      },
-      {
-        path: 'pubPurchaseInfo/5',
-        component: createNameComponent(() => import('@/views/userPublishManage/pubPurchaseInfo.vue')),
-        meta: { title: '已过期', cache: false, },
-      },
-      {
-        path: 'publishDetail',
-        component: createNameComponent(() => import('@/views/userPublishManage/publishDetail.vue')),
-        meta: { title: '发布详情', hideMenuItem: true, cache: false, },
-      },
-    ]
-  },
-  {
-    path: '/quoteManage',
-    component: Layout,
-    redirect: 'quoteManage',
-    meta: { title: '报价管理', icon: 'icon-yingyong' },
-    children: [
-      {
-        path: 'buyQuote',
-        component: createNameComponent(() => import('@/views/quoteManage/buyQuote.vue')),
-        meta: { title: '买牛报价' }
-      },
-      {
-        path: 'sellQuote',
-        component: createNameComponent(() => import('@/views/quoteManage/sellQuote.vue')),
-        meta: { title: '卖牛报价' }
-      },
-      {
-        path: 'sellQuoteAudit',
-        component: createNameComponent(() => import('@/views/quoteManage/sellQuoteAudit.vue')),
-        meta: { title: '卖牛报价审核' }
-      }
-    ]
-  },
-  {
-    path: '/intentManage',
-    component: Layout,
-    redirect: 'intentManage',
-    meta: { title: '意向单管理', icon: 'icon-hezuo' },
-    children: [
-      {
-        path: 'buyIntent',
-        component: createNameComponent(() => import('@/views/intentManage/buyIntent.vue')),
-        meta: { title: '买牛意向单' }
-      },
-      {
-        path: 'sellIntent',
-        component: createNameComponent(() => import('@/views/intentManage/sellIntent.vue')),
-        meta: { title: '卖牛意向单' }
-      }
-    ]
-  },
-  {
-    path: '/orderManage',
-    component: Layout,
-    redirect: 'orderManage/orderManageIndex',
-    meta: { title: '订单管理', icon: 'icon-dingdandingdanmingxishouzhimingxi' },
-    children: [
-      // {
-      //   path: 'orderManage/orderManageIndex',
-      //   component: createNameComponent(() => import('@/views/orderManage/orderManageIndex.vue')),
-      //   meta: { title: '牛只订单管理', cache: false },
-      // },
-      {
-        path: 'orderManage/orderDetail',
-        component: createNameComponent(() => import('@/views/orderManage/orderDetail.vue')),
-        meta: { title: '牛只订单详情', hideMenuItem: true, cache: false, },
-      },
-      {
-        path: 'buyOrder',
-        component: createNameComponent(() => import('@/views/orderManage/buyOrder.vue')),
-        meta: { title: '买牛订单', cache: false, },
-      },
-      {
-        path: 'sellOrder',
-        component: createNameComponent(() => import('@/views/orderManage/sellOrder.vue')),
-        meta: { title: '卖牛订单', cache: false, },
-      },
-      {
-        path: 'contractManage',
-        component: createNameComponent(() => import('@/views/orderManage/contractManage.vue')),
-        meta: { title: '服务合同', hideMenuItem: true, cache: false, }
-      },
-    ]
-  },
-  // {
-  //   path: '/userPublishManage',
-  //   component: Layout,
-  //   redirect: 'userPublishManage/pubSaleInfo',
-  //   meta: { title: '用户发布管理', icon: 'icon-fabu' },
-  //   children: [
-  //     {
-  //       path: 'pubSaleInfo',
-  //       component: createNameComponent(() => import('@/views/userPublishManage/pubSaleInfo.vue')),
-  //       meta: { title: '卖牛信息管理', cache: false, },
-  //     },
-  //     {
-  //       path: 'pubPurchaseInfo',
-  //       component: createNameComponent(() => import('@/views/userPublishManage/pubPurchaseInfo.vue')),
-  //       meta: { title: '买牛信息管理', cache: false, },
-  //     },
-  //     {
-  //       path: 'publishDetail',
-  //       component: createNameComponent(() => import('@/views/userPublishManage/publishDetail.vue')),
-  //       meta: { title: '发布详情', hideMenuItem: true, cache: false, },
-  //     },
-  //   ]
-  // },
-  {
-    path: '/contentManage',
-    component: Layout,
-    redirect: 'contentList',
-    meta: { title: '内容管理', icon: 'icon-_guanggaochuangyi' },
-    alwayShow: true,
-    children: [
-      {
-        path: 'contentList',
-        component: createNameComponent(() => import('@/views/contentManage/contentList.vue')),
-        meta: { title: '内容列表', cache: false, },
-        children: [
-
-        ]
-      },
-      {
-        path: 'contentTypeList',
-        component: createNameComponent(() => import('@/views/contentManage/contentTypeList.vue')),
-        meta: { title: '内容类型列表', cache: false, }
-      },
-      {
-        path: 'newContent',
-        component: createNameComponent(() => import('@/views/contentManage/newContent.vue')),
-        meta: { title: '新增内容', hideMenuItem: true, cache: false, }
-      },
-      {
-        path: 'editContent',
-        component: createNameComponent(() => import('@/views/contentManage/newContent.vue')),
-        meta: { title: '编辑内容', hideMenuItem: true, cache: false, }
-      }
-    ]
-  },
-  /*   {
-      path: '/IntendedCustomers',
-      component: Layout,
-      redirect: 'IntendedCustomers',
-      meta: { title: '意向客户', icon: 'icon-hezuo' },
-      children: [
-        {
-          path: 'IntendedCustomers',
-          component: createNameComponent(() => import('@/views/IntendedCustomers/IntendedCustomers.vue')),
-          meta: { title: '意向客户', icon: 'icon-hezuo', cache: false, },
-          children: [
-  
-          ]
-        },
-      ]
-    }, */
-  {
-    path: '/protocol',
-    component: Layout,
-    redirect: 'protocol',
-    meta: { title: '协议管理', icon: 'icon-yingyong' },
-    children: [
-      {
-        path: 'protocol',
-        component: createNameComponent(() => import('@/views/protocol/index.vue')),
-        meta: { title: '协议管理',icon: 'icon-yingyong'},
-      },
-      // {
-      //   path: 'addProtocol',
-      //   component: createNameComponent(() => import('@/views/protocol/addProtocol.vue')),
-      //   meta: { title: '新增协议', hideMenuItem: true, cache: false, },
-      // }
-    ]
-
-  },
-  {
-    path: '/serviceFee',
-    component: Layout,
-    redirect: 'serviceFee',
-    meta: { title: '费用管理', icon: 'icon-yingyong' },
-    children: [
-      {
-        path: 'index',
-        component: createNameComponent(() => import('@/views/serviceFee/index.vue')),
-        meta: { title: '费用设置' },
-      },
-      {
-        path: 'shopFeeList',
-        component: createNameComponent(() => import('@/views/serviceFee/shopFeeList.vue')),
-        meta: { title: '服务费管理' },
-      }
-    ]
-  },
-  {
-    path: '/cattleTrdeValue',
-    component: Layout,
-    redirect: 'cattleTrdeValue',
-    meta: { title: '牛只交易价值测算', icon: 'icon-_guanggaochuangyi' },
-    children: [
-      {
-        path: 'cattleTrdeValue',
-        component: createNameComponent(() => import('@/views/cattleTrdeValue/index.vue')),
-        meta: { title: '牛只品种管理'},
-      },
-      {
-        path: 'referenceInfo',
-        component: createNameComponent(() => import('@/views/cattleTrdeValue/referenceInfo.vue')),
-        meta: { title: '牛只膘情参考'},
-      },
-      {
-        path: 'recondsInfo',
-        component: createNameComponent(() => import('@/views/cattleTrdeValue/recondsInfo.vue')),
-        meta: { title: '测算记录'},
-      },
-    ]
-  },
+  }
 ]
 
 export default route

+ 0 - 143
src/views/IntendedCustomers/IntendedCustomers.vue

@@ -1,143 +0,0 @@
-<template>
-  <div class="IntendedCustomers">
-    <Row>
-      <Col span="5">
-        <Input v-model="typesearchFilter.contactCell" clearable style="width:200px" placeholder="请输入手机号" @on-change="getData" />
-      </Col>
-      <Col span="9">
-        <DatePicker type="date" v-model="typesearchFilter.startTime" placeholder="请选择开始时间" style="width: 200px"  @on-change="changeStartDate" />
-        -
-        <DatePicker type="date" v-model="typesearchFilter.endTime" placeholder="请选择结束时间" style="width: 200px"  @on-change="changeEndDate" />
-      </Col>
-  </Row>
-
-    <el-table :data="tabData.data" style="width: 100%; margin-top:2em;" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="联系电话"  align="center">
-        <template #default="scope">
-          {{scope.row.contactCell}}
-        </template>
-      </el-table-column>
-      <el-table-column label="意向" align="center">
-        <template #default="scope"> 
-          <Tag color="green" v-if="scope.row.intentionType == 2">我要卖牛</Tag>
-          <Tag color="blue" v-if="scope.row.intentionType == 1">我要买牛</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="访问时间" align="center">
-        <template #default="scope"> 
-          {{ changeTime(scope.row.addTime) }}
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" width="200"  fixed="right">
-        <template  #default="scope">
-          <el-button v-if="scope.row.contactStatus == 0" size="small" type="success" @click="changeStatus(scope.row.id)">待联系</el-button>&nbsp;
-          <el-button v-else size="small" type="info" disabled>已联系</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-  </div>
-</template>
-  
-<script>
-  import { defineComponent,ref,reactive,onMounted } from 'vue'
-  import { ElMessage } from 'element-plus'
-  import { cow } from '@/request/api'
-  import moment from 'moment'
-
-  export default defineComponent({
-    components:{
-      
-    },
-    setup() {
-      
-      let typesearchFilter = reactive({limit:10,offset:0,contactCell:'',startTime:'',endTime:''})
-  
-      let tabData = ref({})
-      
-      //获取列表内容
-      async function getData(){
-        await cow.potentialUserListPage(typesearchFilter).then(res =>{
-          if (res.code == 101) {
-            tabData.value = res
-          }
-        })
-      }
-  
-      let currentPage = ref(1)
-      //更改页码
-      function changePage (page) {
-        if(tabData.value.limit){
-          typesearchFilter.offset = (page -1) *  tabData.value.limit  //更新偏移量
-          currentPage = page  //切换当前页码
-          getData()       //获取广告数据
-        }
-      }
-
-      // 改变联系状态
-      async function changeStatus(id){
-        const params = {
-          id:id,
-          contactStatus:1
-        }
-        await cow.updatePotentialStatus(params).then(res =>{
-          if (res.code == 101) {
-              ElMessage({
-                message: '操作成功!',
-                type: 'success',
-              })
-              getData()
-          }else{
-            ElMessage({
-                message: res.message || '操作失败!',
-                type: 'error',
-            })
-            getData()
-          }
-        })
-      }
-
-      // 格式化时间
-      function changeTime(val){
-       return moment(val).format('yyyy-MM-DD hh:mm:ss')
-      }
-
-      //格式化日期
-      function changeStartDate(val){
-        typesearchFilter.startTime = val
-        getData()
-      }
-      //格式化日期
-      function changeEndDate(val){
-        typesearchFilter.endTime = val
-        getData()
-      }
-
-      onMounted(()=>{
-        getData() 
-      })
-  
-      return {
-        typesearchFilter,
-        getData,
-        tabData,
-        changePage,
-        currentPage,
-        changeTime,changeStartDate,changeEndDate,changeStatus
-      }
-    },
-  })
-  </script>
-  
-  <style lang="scss" scoped>
-  .IntendedCustomers{
-    padding: 1em;
-    .page_style{
-      text-align: right; margin-top: 1em;
-      background-color: var(--system-container-background);
-    }
-  }
-  </style>

+ 0 - 304
src/views/cattleTrdeValue/index.vue

@@ -1,304 +0,0 @@
-<template>
-  <div class="cattleTrdeValue">
-    <Row :gutter="8">
-      <Col span="4">
-        <Input v-model="typesearchFilter.cattleBreed" placeholder="请输入牛只品种" clearable/>
-      </Col>
-      <Col span="4">
-        <Button type="primary" @click="getData">查询信息</Button>
-      </Col>
-      <Col span="16" style="text-align: right;">
-        <el-button type="primary" @click="addContent">新增牛只品种</el-button>
-      </Col>
-    </Row>
-
-    <el-table :data="tabData.data" style="width: 100%; margin-top:3.5em;" border>
-      <!-- <el-table-column label="序号" type="index" width="70" align="center"></el-table-column> -->
-      <el-table-column prop="cattleBreed" label="牛只品种" align="center"> </el-table-column>
-      <el-table-column label="牛只类型" align="center">
-        <template #default="scope">
-          {{scope.row.cattleType||'无'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="日增重(公斤)" align="center">
-        <template #default="scope"> 
-         {{scope.row.dailyGain}}
-        </template>
-      </el-table-column>
-      <el-table-column label="平均日增重(公斤)" align="center">
-        <template #default="scope"> 
-         {{scope.row.dailyGainAvg}}
-        </template>
-      </el-table-column>
-      <el-table-column label="胴体率(%)" align="center">
-        <template #default="scope"> 
-         {{scope.row.carcassPercent || '0'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="平均胴体率(%)" align="center">
-        <template #default="scope"> 
-         {{scope.row.carcassPercentAvg || '0'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="净肉率(%)" align="center">
-        <template #default="scope"> 
-         {{scope.row.meatPercent || '0'}}
-        </template>
-      </el-table-column>
-       <el-table-column label="平均净肉率(%)" align="center">
-        <template #default="scope"> 
-         {{scope.row.meatPercentAvg || '0'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="排序" prop="sort" width="70" align="center"></el-table-column>
-      <el-table-column label="操作" align="center">
-        <template #default="scope">
-          <!--按钮-->
-          <el-button type="primary" size="small" @click="updateContent(scope.row)">编辑</el-button>&nbsp;
-          <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button>&nbsp;
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-    <!-- 新增分类信息 -->
-    <Modal v-model="optClassifyModal" :title="optClassifyModalTitle" width="35%">
-      <Form ref="optClassifyFormRef" :model="optClassifyForm" :label-width="140">
-        <FormItem prop="cattleBreed" label="牛只品种:">
-          <Input v-model="optClassifyForm.cattleBreed" placeholder="请输入牛只品种" style="width:100%;" clearable></Input>
-        </FormItem>
-        <FormItem prop="cattleType" label="牛只类型:">
-          <Select :label-in-value="true" v-model="optClassifyForm.cattleType" style="width:100%" placeholder="请选择" clearable>
-            <Option value="公牛">公牛</Option>
-            <Option value="母牛">母牛</Option>
-          </Select>
-        </FormItem>
-        <FormItem prop="cattleBreed" label="排序:">
-          <Input type='number' v-model="optClassifyForm.sort" placeholder="请输入序号" style="width:100%;"></Input>
-        </FormItem>
-        <FormItem prop="dailyGain" label="日增重(公斤):">
-          <Input v-model="optClassifyForm.dailyGain" placeholder="请输入日增重" style="width:100%;" clearable></Input>
-        </FormItem>
-        <FormItem prop="dailyGainAvg" label="平均日增重(公斤):">
-          <InputNumber :min="0" v-model="optClassifyForm.dailyGainAvg" placeholder="请输入日增重" style="width:100%;" />
-        </FormItem>
-        <FormItem prop="carcassPercent" label="胴体率(%):">
-          <Input v-model="optClassifyForm.carcassPercent" placeholder="请输入胴体率" style="width:100%;" clearable></Input>
-        </FormItem>
-        <FormItem prop="carcassPercentAvg" label="平均胴体率(%):">
-          <InputNumber :min="0" v-model="optClassifyForm.carcassPercentAvg" placeholder="请输入胴体率" style="width:100%;" />
-        </FormItem>
-        <FormItem prop="meatPercent" label="净肉率(%):">
-          <Input v-model="optClassifyForm.meatPercent" placeholder="请输入净肉率" style="width:100%;" clearable></Input>
-        </FormItem>
-        <FormItem prop="meatPercentAvg" label="平均净肉率(%):">
-          <InputNumber :min="0" v-model="optClassifyForm.meatPercentAvg" placeholder="请输入净肉率" style="width:100%;" />
-        </FormItem>
-        <Row>
-          <Col :span="12">
-            <FormItem prop="viceCowhide" label="牛皮占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceCowhide" placeholder="请输入牛皮占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-          <Col :span="12">
-            <FormItem prop="viceOil" label="杂油占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceOil" placeholder="请输入杂油占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-        </Row>
-        <Row>
-          <Col :span="12">
-            <FormItem prop="viceHead" label="牛头占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceHead" placeholder="请输入牛头占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-          <Col :span="12">
-            <FormItem prop="viceHoof" label="牛蹄占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceHoof" placeholder="请输入牛蹄占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-        </Row>
-        <Row>
-          <Col :span="12">
-            <FormItem prop="viceOmasum" label="毛肚占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceOmasum" placeholder="请输入毛肚占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-          <Col :span="12">
-            <FormItem prop="viceLiver" label="牛肝占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceLiver" placeholder="请输入牛肝占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-        </Row>
-        <Row>
-          <Col :span="12">
-            <FormItem prop="viceIntestine" label="牛肠占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceIntestine" placeholder="请输入牛肠占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-          <Col :span="12">
-            <FormItem prop="viceLung" label="牛肺占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceLung" placeholder="请输入牛肺占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-        </Row>
-        <Row>
-          <Col :span="12">
-            <FormItem prop="viceTripe" label="牛百叶占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceTripe" placeholder="请输入牛百叶占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-          <Col :span="12">
-            <FormItem prop="viceHeart" label="牛心占比(%):">
-              <InputNumber :min="0" v-model="optClassifyForm.viceHeart" placeholder="请输入牛心占比" style="width:100%;" />
-            </FormItem>
-          </Col>
-        </Row>
-      </Form>
-      <template #footer>
-        <div style="text-align:center;">
-          <Button style="margin-right:5em;" @click="optClassifyModal = false">取消操作</Button>
-          <Button type="primary" @click="submitOptClassify">确定提交</Button>
-        </div>
-      </template>
-    </Modal>
-  </div>
-</template>
-
-<script>
-import { defineComponent,ref,reactive,onMounted } from 'vue'
-import {item} from '@/request/api'
-import { ElMessage } from 'element-plus'
-import { tr } from 'element-plus/es/locale'
-export default defineComponent({
-  components:{
-    
-  },
-  setup() {
-    let optClassifyModal = ref(false)
-    let optClassifyModalTitle = ref('新增')
-    let optClassifyForm = reactive({carcassPercent:'',carcassPercentAvg:'',cattleBreed :'',cattleType :'',dailyGain :'',dailyGainAvg :'',meatPercent :'',
-    meatPercentAvg:'',viceCowhide :'',viceHead :'',viceHeart :'',viceHoof :'',viceIntestine :'',viceLiver:'',viceLung :'',viceOil :'',viceOmasum :'',viceTripe :'',sort:0})
-
-    let tabData = ref({})
-    let typesearchFilter = reactive({limit:10,offset:0,cattleBreed:''})
-    //获取列表内容
-    async function getData(){
-      await item.cattleDeelList(typesearchFilter).then(res =>{
-        if (res.code == 101) {
-          tabData.value = res || {}
-        }
-      })
-    }
-
-    let currentPage = ref(1)
-    //更改页码
-    function changePage (page) {
-      if(tabData.value.limit){
-        typesearchFilter.offset = (page -1) *  tabData.value.limit  //更新偏移量
-        currentPage = page  //切换当前页码
-        getData()//获取广告数据
-      }
-    }
-
-    // 删除内容
-    function delContent(id){
-      this.$Modal.confirm({
-        title: '温馨提示',
-        content: '您确定删除当前内容吗?',
-        onOk:async () => {
-          await item.deleteCattleDeel({id:id}).then(res=>{
-            if(res.code == 101){
-              ElMessage({
-                message: res.message || '操作成功!',
-                type: 'success',
-              })
-              this.changePage(1)  //重新获取列表
-            }else{
-              ElMessage({
-                message: res.message || '操作失败!',
-                type: 'warning',
-              })
-            }
-          }).catch(e=>{
-            ElMessage({
-              message: e.message || '添加失败!',
-              type: 'error',
-            })
-          })
-        },
-        onCancel: () => {
-          this.$Message.info('您已取消操作!');
-        }
-      });
-    }
-    // 提交操作分类
-    function submitOptClassify(){
-      let sendParams = JSON.parse(JSON.stringify(optClassifyForm))
-      let reqFn = null
-      if(optClassifyForm.id && optClassifyForm.id != null){
-        reqFn = item.updateCattleDeel
-      }else{
-        reqFn = item.createCattleDeel
-      }
-      reqFn(sendParams).then(res=>{
-        if(res.code === 101){
-          optClassifyModal.value = false
-          ElMessage({
-            message: res.message || '操作成功!',
-            type: 'success',
-          })
-          getData()
-        }else{
-          ElMessage({
-            message: res.message || '操作失败!',
-            type: 'warning',
-          })
-        }
-      }).catch(e=>{
-        ElMessage({
-          message: res.message || '操作失败!',
-          type: 'warning',
-        })
-      })
-    }
-    //编辑
-    function updateContent(data){
-      optClassifyModal.value = true
-      Object.assign(optClassifyForm,data)
-      optClassifyModalTitle.value = '编辑'
-    }
-    //新增
-    function addContent(){
-      Object.assign(optClassifyForm,{id:null,carcassPercent:'',carcassPercentAvg:'',cattleBreed :'',cattleType :'',dailyGain :'',dailyGainAvg :'',meatPercent :'',
-      meatPercentAvg:'',viceCowhide :'',viceHead :'',viceHeart :'',viceHoof :'',viceIntestine :'',viceLiver:'',viceLung :'',viceOil :'',viceOmasum :'',viceTripe :'',sort:0})
-      console.log(optClassifyForm,'optClassifyForm')
-      optClassifyModal.value = true
-      optClassifyModalTitle.value = '新增'
-    }
-    onMounted(()=>{
-      getData() 
-    })
-
-    return {
-      typesearchFilter,optClassifyModal,optClassifyModalTitle,optClassifyForm,
-      getData,tabData,changePage,currentPage,updateContent,delContent,submitOptClassify,addContent
-    }
-  },
-  methods:{
-    
-  }
-})
-</script>
-
-<style lang="scss" scoped>
-.cattleTrdeValue{
-  padding: 1em;
-  .page_style{
-    text-align: right; margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 887
src/views/cattleTrdeValue/recondsInfo.vue

@@ -1,887 +0,0 @@
-<template>
-  <div class="recondsInfo">
-    <!-- <Row :gutter="8">
-      <Col span="4">
-        <Input v-model="typesearchFilter.cattleBreed" placeholder="请输入牛只品种" clearable/>
-      </Col>
-      <Col span="4">
-        <Button type="primary" @click="getData">查询信息</Button>
-      </Col>
-    </Row> -->
-
-    <el-table :data="tabData.data" style="width: 100%;" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column prop="remarks" label="记录名称" align="center"> </el-table-column>
-      <el-table-column prop="cattleBreed" label="牛只品种" align="center"> </el-table-column>
-      <el-table-column label="牛只类型" align="center">
-        <template #default="scope">
-          {{scope.row.cattleType||'无'}}
-        </template>
-      </el-table-column>
-      <el-table-column prop="cattleNum" label="牛只数量" align="center"> </el-table-column>
-      <el-table-column label="测算时间" align="center">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss')}}
-        </template>
-      </el-table-column>
-      <el-table-column prop="userName" label="用户名" align="center"> </el-table-column>
-      <el-table-column label="操作" width="200"  fixed="right">
-        <template  #default="scope">
-          <el-button size="small" type="primary" @click="lookDetail(scope.row)">查看详情</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-    <!-- 查看详情 -->
-    <Modal v-model="contentTypeModel" title="查看详情" ok-text="确定" width="50%">
-      <el-divider content-position="center">牛只采购</el-divider>
-      <Row>
-        <Col span="5">
-          <span>牛只品种:{{info.cattleBreed}}</span>
-        </Col>
-        <Col span="5">
-          <span>牛只类型:{{info.cattleType}}</span>
-        </Col>
-        <Col span="5">
-          <span>牛只数量:{{info.cattleNum|| 0}}头</span>
-        </Col>
-        <Col span="5">
-          <span>采购重量:{{info.purchaseWeight|| 0}}公斤/头</span>
-        </Col>
-        <Col span="4">
-          <span>采购单价:{{info.purchasePrice|| 0}}元/公斤</span>
-        </Col>
-      </Row>
-      <el-table :data="arrOne" style="width: 100%;margin:10px 0" border stripe>
-        <el-table-column prop="cattleBreed" label="牛只品种" align="center"> </el-table-column>
-        <el-table-column prop="cattleType" label="牛只类型" align="center"> </el-table-column>
-        <el-table-column prop="weight" label="活牛重(公斤)" align="center"> </el-table-column>
-        <el-table-column prop="purchasePrice" label="单价(元/公斤)" align="center"> </el-table-column>
-        <el-table-column prop="totalMoney" label="采购投资(万元)" align="center"> </el-table-column>
-      </el-table>
-      <el-divider content-position="center">牛只育肥</el-divider>
-      <Row>
-        <Col span="5">
-          <span>是否育肥:{{info.isYf == 1?'是':'否'}}</span>
-        </Col>
-        <Col span="5" v-if="info.isYf == 1">
-          <span>育肥周期:{{info.growCycle|| 0}}天</span>
-        </Col>
-        <Col span="5" v-if="info.isYf == 1">
-          <span>出栏重量:{{info.targetWeight|| 0}}公斤/头</span>
-        </Col>
-        <Col span="5" v-if="info.isYf == 1">
-          <span>育肥运输:{{info.growTransport|| 0}}元/头</span>
-        </Col>
-        <Col span="4" v-if="info.isYf == 1">
-          <span>饲草费用:{{info.grassFee|| 0}}元/头/天</span>
-        </Col>
-        <Col span="5" v-if="info.isYf == 1" style="margin-top:10px;">
-          <span>人工费用:{{info.laborFee|| 0}}元/头/天</span>
-        </Col>
-        <Col span="5" v-if="info.isYf == 1" style="margin-top:10px;">
-          <span>场地费用:{{info.spaceFee|| 0}}元/头/天</span>
-        </Col>
-      </Row>
-      <el-table :data="arrOne" style="width: 100%;margin:10px 0" border stripe v-if="info.isYf == 1">
-        <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-          <template #default="scope">
-            <span>{{scope.row.transporFee.toFixed(2)}}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="dailyGain" label="日增重(公斤/天)" align="center">
-          <template #default="scope">
-            <span>{{scope.row.dailyGain.toFixed(2)}}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="cost" label="育肥成本(元/公斤)" align="center">
-          <template #default="scope">
-            <span>{{scope.row.cost.toFixed(2)}}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="invest" label="育肥投资(万元)" align="center">
-          <template #default="scope">
-            <span>{{scope.row.invest.toFixed(2)}}</span>
-          </template>
-        </el-table-column>
-      </el-table>
-      <el-divider content-position="center">牛只销售</el-divider>
-      <el-tabs type="border-card">
-        <el-tab-pane label="活牛销售">
-          <Row>
-            <Col span="5">
-              <span>销售运输:{{info.saleCattleTransport || 0}}元/头</span>
-            </Col>
-            <Col span="5">
-              <span>销售重量:{{info.saleCattleWeight|| 0}}公斤/头</span>
-            </Col>
-            <Col span="5">
-              <span>销售单价:{{info.saleCattlePrice|| 0}}元/公斤</span>
-            </Col>
-            <Col span="5">
-              <span>采销差价:{{info.priceDifference|| 0}}元/公斤</span>
-            </Col>
-          </Row>
-          <el-table :data="arrTwo" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="活牛重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.price.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.income.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.salesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.rate<0?'color:red':''">{{scope.row.rate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-          <div>胴体销售预估数据:</div>
-          <el-table :data="arrTwo" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="胴体重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtprice.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtincome.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtsalesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.dtRate<0?'color:red':''">{{scope.row.dtRate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-          <div>牛肉销售预估数据:</div>
-          <el-table :data="arrTwo" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="净肉重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefprice.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefincome.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefsalesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.beefRate<0?'color:red':''">{{scope.row.beefRate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-tab-pane>
-        <el-tab-pane label="胴体销售">
-          <Row>
-            <Col span="5">
-              <span>销售重量:{{info.saleCattleWeight|| 0}}公斤/头</span>
-            </Col>
-            <Col span="5">
-              <span>平均胴体率:{{info.carcassPercentAvg|| 0}}%</span>
-            </Col>
-            <Col span="5">
-              <span>胴体单价:{{info.saleCarcassPrice|| 0}}元/公斤</span>
-            </Col>
-            <Col span="5">
-              <span>加工费:{{info.saleCarcassCutPrice|| 0}}元/头</span>
-            </Col>
-          </Row>
-          <el-table :data="arrThree" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="屠宰费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.butcherFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="胴体重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.price.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.income.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.salesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.rate<0?'color:red':''">{{scope.row.rate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-          <div>活牛销售预估数据:</div>
-          <el-table :data="arrThree" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="活牛重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowprice.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowincome.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowsalesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.cowrate<0?'color:red':''">{{scope.row.cowrate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-          <div>牛肉销售预估数据:</div>
-          <el-table :data="arrThree" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="净肉重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefprice.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefincome.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefsalesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.beefRate<0?'color:red':''">{{scope.row.beefRate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-tab-pane>
-        <el-tab-pane label="牛肉销售">
-           <Row>
-            <Col span="5">
-              <span>销售重量:{{info.saleCattleWeight|| 0}}公斤/头</span>
-            </Col>
-            <Col span="5">
-              <span>平均净肉率:{{info.meatPercentAvg || 0}}%</span>
-            </Col>
-            <Col span="5">
-              <span>牛肉单价:{{info.saleBeefPrice|| 0}}元/公斤</span>
-            </Col>
-            <Col span="5">
-              <span>加工费:{{info.saleBeefCutPrice|| 0}}元/头</span>
-            </Col>
-          </Row>
-          <el-table :data="arrFour" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="屠宰费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.butcherFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="净肉重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefprice.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefincome.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.beefsalesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.beefRate<0?'color:red':''">{{scope.row.beefRate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-          <div>活牛销售预估数据:</div>
-          <el-table :data="arrFour" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="活牛重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowprice.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowincome.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.cowsalesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.cowrate<0?'color:red':''">{{scope.row.cowrate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-          <div>胴体销售预估数据:</div>
-          <el-table :data="arrFour" style="width: 100%;margin:10px 0" border stripe>
-            <el-table-column prop="transporFee" label="运输费用(万元)" align="center"> 
-              <template #default="scope">
-                <span>{{scope.row.transporFee.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cowWeight" label="胴体重(公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtWeight.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cost" label="单价(元/公斤)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtprice.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="收入(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtincome.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="销售毛利(万元)" align="center">
-              <template #default="scope">
-                <span>{{scope.row.dtsalesProfit.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-            <el-table-column prop="invest" label="毛利率(%)" align="center">
-              <template #default="scope">
-                <span :style="scope.row.dtRate<0?'color:red':''">{{scope.row.dtRate.toFixed(2)}}</span>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-tab-pane>
-        <el-tab-pane label="牛副">
-          <Row style="font-weight: 600;" class="rowStyle">
-            <Col span="4">序号</Col>
-            <Col span="5">部位</Col>
-            <Col span="5">牛副占比</Col>
-            <Col span="5">价格(元/公斤)</Col>
-            <Col span="5">价值(元)</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">1</Col>
-            <Col span="5">牛皮</Col>
-            <Col span="5">{{infoOne.viceCowhide}}</Col>
-            <Col span="5">{{info.viceCowhidePrice}}</Col>
-            <Col span="5">{{infoVice.viceCowhideMoney?infoVice.viceCowhideMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">2</Col>
-            <Col span="5">杂油</Col>
-            <Col span="5">{{infoOne.viceOil}}</Col>
-            <Col span="5">{{info.viceOilPrice}}</Col>
-            <Col span="5">{{infoVice.viceOilMoney?infoVice.viceOilMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">3</Col>
-            <Col span="5">牛头</Col>
-            <Col span="5">{{infoOne.viceHead}}</Col>
-            <Col span="5">{{info.viceHeadPrice}}</Col>
-            <Col span="5">{{infoVice.viceHeadMoney?infoVice.viceHeadMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">4</Col>
-            <Col span="5">牛蹄</Col>
-            <Col span="5">{{infoOne.viceHoof}}</Col>
-            <Col span="5">{{info.viceHoofPrice}}</Col>
-            <Col span="5">{{infoVice.viceOilMoney?infoVice.viceOilMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">5</Col>
-            <Col span="5">毛肚</Col>
-            <Col span="5">{{infoOne.viceOmasum}}</Col>
-            <Col span="5">{{info.viceOmasumPrice}}</Col>
-            <Col span="5">{{infoVice.viceOmasumMoney?infoVice.viceOmasumMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">6</Col>
-            <Col span="5">牛肝</Col>
-            <Col span="5">{{infoOne.viceLiver}}</Col>
-            <Col span="5">{{info.viceLiverPrice}}</Col>
-            <Col span="5">{{infoVice.viceLiverMoney?infoVice.viceLiverMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">7</Col>
-            <Col span="5">牛肠</Col>
-            <Col span="5">{{infoOne.viceIntestine}}</Col>
-            <Col span="5">{{info.viceIntestinePrice}}</Col>
-            <Col span="5">{{infoVice.viceIntestineMoney?infoVice.viceIntestineMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">8</Col>
-            <Col span="5">牛肺</Col>
-            <Col span="5">{{infoOne.viceLung}}</Col>
-            <Col span="5">{{info.viceLungPrice}}</Col>
-            <Col span="5">{{infoVice.viceLungMoney?infoVice.viceLungMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">9</Col>
-            <Col span="5">牛百叶</Col>
-            <Col span="5">{{infoOne.viceTripe}}</Col>
-            <Col span="5">{{info.viceTripePrice}}</Col>
-            <Col span="5">{{infoVice.viceTripeMoney?infoVice.viceTripeMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row class="rowStyle">
-            <Col span="4">10</Col>
-            <Col span="5">牛心</Col>
-            <Col span="5">{{infoOne.viceHeart}}</Col>
-            <Col span="5">{{info.viceHeratPrice}}</Col>
-            <Col span="5">{{infoVice.viceHeratMoney?infoVice.viceHeratMoney.toFixed(2):0}}</Col>
-          </Row>
-          <Row style="font-weight: 600;" class="rowStyle">
-            <Col span="4">合计</Col>
-            <Col span="5"></Col>
-            <Col span="5">{{infoVice.totalWeight?infoVice.totalWeight.toFixed(2):0}}</Col>
-            <Col span="5"></Col>
-            <Col span="5">{{infoVice.totalMoney?infoVice.totalMoney.toFixed(2):0}}</Col>
-          </Row>
-        </el-tab-pane>
-      </el-tabs>
-      <template #footer>
-        <div style="text-align:center;">
-          <el-button @click="contentTypeModel = false">关闭</el-button>
-        </div>
-      </template>
-    </Modal> 
-  </div>
-</template>
-
-<script>
-import { defineComponent,ref,reactive,onMounted } from 'vue'
-import {item} from '@/request/api'
-import { ElMessage } from 'element-plus'
-import moment from 'moment'
-export default defineComponent({
-  components:{
-    
-  },
-  setup() {
-    let tabData = ref({})
-    let typesearchFilter = reactive({limit:10,offset:0,cattleBreed:''})
-    //获取列表内容
-    async function getData(){
-      await item.getCattleDealValuePage(typesearchFilter).then(res =>{
-        if (res.code == 101) {
-          tabData.value = res || {}
-        }
-      })
-    }
-
-    let currentPage = ref(1)
-    //更改页码
-    function changePage (page) {
-      if(tabData.value.limit){
-        typesearchFilter.offset = (page -1) *  tabData.value.limit  //更新偏移量
-        currentPage = page  //切换当前页码
-        getData()//获取广告数据
-      }
-    }
-    let contentTypeModel = ref(false)
-    let info = ref({})
-    let arrOne = ref([])
-    let arrTwo = ref([])
-    let arrThree = ref([])
-    let arrFour = ref([])
-    let infoVice = ref({})
-    //查看详情
-    async function lookDetail(data){
-      info.value = {}
-      info.value = data
-      if(data.targetWeight){
-        info.value.isYf = 1
-      }else{
-        info.value.isYf = 0
-      }
-      info.value.priceDifference = (Number(data.saleCattlePrice)-Number(data.purchasePrice)).toFixed(2)
-      await getcattleData(data.cattleBreed,data.cattleType)
-      await calculateAll(info.value)
-      contentTypeModel.value = true
-    }
-    //计算育肥,销售,牛副信息
-    function calculateAll(data){
-      arrOne.value = []
-      arrTwo.value = []
-      arrThree.value = []
-      arrFour.value = []
-      infoVice.value = {}
-      // 计算牛只采购,牛只育肥
-      let newobj = {}
-      newobj.cattleBreed = data.cattleBreed
-      newobj.cattleType = data.cattleType
-      newobj.purchasePrice = data.purchasePrice
-      if(data.cattleNum && data.cattleNum!= '' && data.purchaseWeight && data.purchaseWeight !=''){
-        newobj.weight = Number(data.cattleNum)*Number(data.purchaseWeight)
-      }else{
-        newobj.weight = 0
-      }
-      if(data.cattleNum && data.cattleNum!= '' && data.purchaseWeight && data.purchaseWeight !='' && data.purchasePrice && data.purchasePrice !=''){
-        newobj.totalMoney = (Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000
-      }else{
-        newobj.totalMoney = 0
-      }
-      if(data.cattleNum && data.cattleNum != '' && data.growTransport && data.growTransport !=''){
-        newobj.transporFee = (Number(data.cattleNum)*Number(data.growTransport))/10000  //运输费用
-      }else{
-        newobj.transporFee = 0
-      }
-      if(data.targetWeight && data.targetWeight != '' && data.purchaseWeight && data.purchaseWeight!= '' &&data.growCycle && data.growCycle!=''){
-        newobj.dailyGain = (Number(data.targetWeight)-Number(data.purchaseWeight))/Number(data.growCycle) //日增重
-      }else{
-        newobj.dailyGain = 0
-      }
-      if(data.grassFee && data.grassFee !='' && data.laborFee && data.laborFee!='' && data.spaceFee && data.spaceFee!='' && data.growCycle && data.growCycle!=''){
-        newobj.invest = (((Number(data.grassFee)+Number(data.laborFee)+Number(data.spaceFee))*Number(data.growCycle)*Number(data.cattleNum))/10000)+newobj.transporFee  //育肥投资
-      }else{
-        newobj.invest = 0
-      }
-      if(newobj.invest != ''){
-        newobj.cost = (newobj.invest * 10000)/((Number(data.targetWeight)-Number(data.purchaseWeight))*Number(data.cattleNum))
-      }else{
-        newobj.cost = 0
-      }
-      arrOne.value.push(newobj)
-      // 计算牛只销售--活牛销售
-      let infoXs = {dtRate:0,beefRate:0,cowWeight:0,price:0,income:0,rate:0,priceDifference:0}
-      if(data.saleCattleTransport && data.saleCattleTransport != ''){
-        infoXs.transporFee = (Number(data.cattleNum)*Number(data.saleCattleTransport))/10000 //运输费用
-      }else{
-        infoXs.transporFee = 0
-      }
-      if(data.saleCattlePrice != '' && data.saleCattleWeight !=''){
-        infoXs.cowWeight = Number(data.cattleNum)*Number(data.saleCattleWeight)
-        infoXs.price = Number(data.saleCattlePrice)  //销售单价
-        infoXs.income = (infoXs.cowWeight*Number(data.saleCattlePrice))/10000   //收入万元
-        infoXs.salesProfit = infoXs.income-((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)-newobj.invest-infoXs.transporFee//销售毛利(万元)
-        infoXs.rate = (infoXs.salesProfit/infoXs.income)*100  //毛利率
-        infoXs.priceDifference = (Number(data.saleCattlePrice)-Number(data.purchasePrice)).toFixed(2)
-      }
-      // 实际平均胴体率,实际平均净肉率
-      if(data.saleCattleWeight && data.saleCattleWeight != ''){
-        if(data.saleCattleWeight >= 800){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne + 2
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne + 2
-        }else if(data.saleCattleWeight >= 750 && data.saleCattleWeight < 800){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne + 1.5
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne + 1.5
-        }else if(data.saleCattleWeight >= 700 && data.saleCattleWeight < 750){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne + 1
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne + 1
-        }else if(data.saleCattleWeight >= 650 && data.saleCattleWeight < 700){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne + 0.5
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne + 0.5
-        }else if(data.saleCattleWeight >= 600 && data.saleCattleWeight < 650){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne 
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne
-        }else if(data.saleCattleWeight >= 550 && data.saleCattleWeight < 600){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne -1
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne -1
-        }else if(data.saleCattleWeight >= 500 && data.saleCattleWeight < 550){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne -3
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne -3
-        }else if(data.saleCattleWeight >= 400 && data.saleCattleWeight < 500){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne -4.5
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne -4.5
-        }else if(data.saleCattleWeight < 400){
-          data.carcassPercentAvg  = infoOne.value.carcassPercentAvgOne -5
-          data.meatPercentAvg  = infoOne.value.meatPercentAvgOne -5
-        }
-      }
-      if(infoXs.cowWeight != ''){
-        infoXs.dtWeight = infoXs.cowWeight * (Number(data.carcassPercentAvg)/100)//胴体重
-        infoXs.beefWeight = infoXs.cowWeight * (Number(data.meatPercentAvg)/100)//净肉重
-      }
-      if(infoXs.dtRate == 0){
-        infoXs.dtincome = ((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoXs.transporFee
-        infoXs.dtsalesProfit = 0
-      }else{
-        infoXs.dtincome = (((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoXs.transporFee)*(1+infoXs.dtRate/100)
-        infoXs.dtsalesProfit = infoXs.dtincome * infoXs.dtRate/100
-      }
-      infoXs.dtprice = (infoXs.dtincome*10000)/infoXs.dtWeight
-      if(infoXs.beefRate == 0){
-        infoXs.beefincome = ((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoXs.transporFee
-        infoXs.beefsalesProfit = 0
-      }else{
-        infoXs.beefincome = (((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoXs.transporFee)*(1+infoXs.beefRate/100)
-        infoXs.beefsalesProfit = infoXs.beefincome * infoXs.beefRate/100
-      }
-      infoXs.beefprice = (infoXs.beefincome*10000)/infoXs.beefWeight
-      arrTwo.value.push(infoXs)
-      // 计算牛只销售--胴体销售
-      let infoDt = {cowrate:0,beefRate:0,price:0,income:0,salesProfit:0,rate:0}
-      infoDt.transporFee = infoXs.transporFee
-      if(data.saleCarcassCutPrice && data.saleCarcassCutPrice != ''){
-        infoDt.butcherFee = (Number(data.saleCarcassCutPrice) * Number(data.cattleNum))/10000
-      }else{
-        infoDt.butcherFee = 0
-      }
-      infoDt.dtWeight = infoXs.dtWeight
-      if(data.saleCarcassPrice && data.saleCarcassPrice != ''){
-        infoDt.price = Number(data.saleCarcassPrice)  //销售单价
-        infoDt.income = (infoDt.dtWeight * infoDt.price)/10000
-        //销售毛利(万元)
-        infoDt.salesProfit = infoDt.income-((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)-newobj.invest-infoDt.transporFee-infoDt.butcherFee
-        infoDt.rate = (infoDt.salesProfit/infoDt.income)*100  //毛利率
-      }
-      //活牛重
-      if(data.saleCattleWeight != ''){
-        infoDt.cowWeight = Number(data.cattleNum)*Number(data.saleCattleWeight)
-      }
-      if(infoDt.cowrate == 0){
-        infoDt.cowincome = ((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoDt.transporFee
-        infoDt.cowsalesProfit = 0
-      }else{
-        infoDt.cowincome = (((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoDt.transporFee)*(1+infoDt.dtRate/100)
-        infoDt.cowsalesProfit = infoDt.dtincome * infoDt.dtRate/100
-      }
-      infoDt.cowprice = (infoDt.cowincome*10000)/infoDt.cowWeight
-      //净肉重
-      infoDt.beefWeight = infoXs.beefWeight
-      if(infoDt.beefRate == 0){
-        infoDt.beefincome = ((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoDt.transporFee
-        infoDt.beefsalesProfit = 0
-      }else{
-        infoDt.beefincome = (((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoDt.transporFee)*(1+infoDt.beefRate/100)
-        infoDt.beefsalesProfit = infoDt.beefincome * infoDt.beefRate/100
-      }
-      infoDt.beefprice = (infoDt.beefincome*10000)/infoDt.beefWeight
-      arrThree.value.push(infoDt)
-      // 计算牛只销售--牛肉销售
-      let infoBeef = {cowrate:0,dtRate:0,beefprice:0,beefincome:0,beefsalesProfit:0,beefRate:0}
-      infoBeef.transporFee = infoXs.transporFee
-      if(data.saleBeefCutPrice && data.saleBeefCutPrice != ''){
-        infoBeef.butcherFee = (Number(data.saleBeefCutPrice) * Number(data.cattleNum))/10000
-      }else{
-        infoBeef.butcherFee = 0
-      }
-      infoBeef.beefWeight = infoXs.beefWeight
-      if(data.saleBeefPrice && data.saleBeefPrice !=''){
-        infoBeef.beefprice = Number(data.saleBeefPrice)  //销售单价
-        infoBeef.beefincome = (infoBeef.beefWeight * infoBeef.beefprice)/10000
-        infoBeef.beefsalesProfit = infoBeef.beefincome-((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)-newobj.invest-infoBeef.transporFee-infoBeef.butcherFee//销售毛利(万元)
-        infoBeef.beefRate = (infoBeef.beefsalesProfit/infoBeef.beefincome)*100  //毛利率
-      }
-      //活牛重
-      if(data.saleCattleWeight != ''){
-        infoBeef.cowWeight = Number(data.cattleNum)*Number(data.saleCattleWeight)
-      }
-      if(infoBeef.cowrate == 0){
-        infoBeef.cowincome = ((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoBeef.transporFee
-        infoBeef.cowsalesProfit = 0
-      }else{
-        infoBeef.cowincome = (((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoBeef.transporFee)*(1+infoBeef.cowrate/100)
-        infoBeef.cowsalesProfit = infoBeef.dtincome * infoBeef.cowrate/100
-      }
-      infoBeef.cowprice = (infoBeef.cowincome*10000)/infoBeef.cowWeight
-      //胴体重
-      infoBeef.dtWeight = infoXs.dtWeight
-      if(infoBeef.dtRate == 0){
-        infoBeef.dtincome = ((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoBeef.transporFee
-        infoBeef.dtsalesProfit = 0
-      }else{
-        infoBeef.dtincome = (((Number(data.cattleNum)*Number(data.purchaseWeight)*Number(data.purchasePrice))/10000)+newobj.invest+infoBeef.transporFee)*(1+infoBeef.dtRate/100)
-        infoBeef.dtsalesProfit = infoBeef.dtincome * infoBeef.dtRate/100
-      }
-      infoBeef.dtprice = (infoBeef.dtincome*10000)/infoBeef.dtWeight
-      arrFour.value.push(infoBeef)
-      //计算牛副
-      if(data.viceCowhidePrice && data.viceCowhidePrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceCowhideMoney = data.saleCattleWeight * (Number(infoOne.value.viceCowhide)/100) * Number(data.viceCowhidePrice)
-      }
-      if(data.viceOilPrice && data.viceOilPrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceOilMoney = data.saleCattleWeight * (Number(infoOne.value.viceOil)/100) * Number(data.viceOilPrice)
-      }
-      if(data.viceHeadPrice && data.viceHeadPrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceHeadMoney = data.saleCattleWeight * (Number(infoOne.value.viceHead)/100) * Number(data.viceHeadPrice)
-      }
-      if(data.viceHoofPrice && data.viceHoofPrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceHoofMoney = data.saleCattleWeight * (Number(infoOne.value.viceHoof)/100) * Number(data.viceHoofPrice)
-      }
-      if(data.viceOmasumPrice && data.viceOmasumPrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceOmasumMoney = data.saleCattleWeight * (Number(infoOne.value.viceOmasum)/100) * Number(data.viceOmasumPrice)
-      }
-      if(data.viceLiverPrice && data.viceLiverPrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceLiverMoney = data.saleCattleWeight * (Number(infoOne.value.viceLiver)/100) * Number(data.viceLiverPrice)
-      }
-      if(data.viceIntestinePrice && data.viceIntestinePrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceIntestineMoney = data.saleCattleWeight * (Number(infoOne.value.viceIntestine)/100) * Number(data.viceIntestinePrice)
-      }
-      if(data.viceLungPrice && data.viceLungPrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceLungMoney = data.saleCattleWeight * (Number(infoOne.value.viceLung)/100) * Number(data.viceLungPrice)
-      }
-      if(data.viceTripePrice && data.viceTripePrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceTripeMoney = data.saleCattleWeight * (Number(infoOne.value.viceTripe)/100) * Number(data.viceTripePrice)
-      }
-      if(data.viceHeratPrice && data.viceHeratPrice != '' && data.saleCattleWeight != ''){
-        infoVice.value.viceHeratMoney = data.saleCattleWeight * (Number(infoOne.value.viceHeart)/100) * Number(data.viceHeratPrice)
-      }
-      infoVice.value.totalWeight = Number(infoOne.value.viceCowhide) + Number(infoOne.value.viceOil) + Number(infoOne.value.viceHead) + Number(infoOne.value.viceHoof)+Number(infoOne.value.viceOmasum)+
-                              Number(infoOne.value.viceLiver)+Number(infoOne.value.viceIntestine)+Number(infoOne.value.viceLung)+Number(infoOne.value.viceTripe)+Number(infoOne.value.viceHeart)
-      infoVice.value.totalMoney = infoVice.value.viceCowhideMoney+infoVice.value.viceOilMoney+infoVice.value.viceHeadMoney+
-                                  infoVice.value.viceHoofMoney+infoVice.value.viceOmasumMoney+
-                                  infoVice.value.viceLiverMoney +infoVice.value.viceIntestineMoney+infoVice.value.viceLungMoney+
-                                  infoVice.value.viceTripeMoney+infoVice.value.viceHeratMoney
-    }
-    
-    let infoOne = ref({})
-    //获取当前牛种信息
-    async function getcattleData(cattleBreed,cattleType){
-      await item.getCattleParamOne({cattleBreed:cattleBreed,cattleType:cattleType}).then(res =>{
-        if (res.code == 101) {
-          infoOne.value.carcassPercentAvgOne = res.data && res.data.carcassPercentAvg?res.data.carcassPercentAvg:0
-          infoOne.value.meatPercentAvgOne = res.data && res.data.meatPercentAvg?res.data.meatPercentAvg:0
-          infoOne.value.viceCowhide = res.data && res.data.viceCowhide?res.data.viceCowhide:0
-          infoOne.value.viceHead = res.data && res.data.viceHead?res.data.viceHead:0
-          infoOne.value.viceHeart = res.data && res.data.viceHeart?res.data.viceHeart:0
-          infoOne.value.viceHoof = res.data && res.data.viceHoof?res.data.viceHoof:0
-          infoOne.value.viceIntestine = res.data && res.data.viceIntestine?res.data.viceIntestine:0
-          infoOne.value.viceLiver = res.data && res.data.viceLiver?res.data.viceLiver:0
-          infoOne.value.viceLung = res.data && res.data.viceLung?res.data.viceLung:0
-          infoOne.value.viceOil = res.data && res.data.viceOil?res.data.viceOil:0
-          infoOne.value.viceOmasum = res.data && res.data.viceOmasum?res.data.viceOmasum:0
-          infoOne.value.viceTripe = res.data && res.data.viceTripe?res.data.viceTripe:0
-        }
-      })
-    }
-    onMounted(()=>{
-      getData() 
-    })
-
-    return {
-      typesearchFilter,getData,tabData,changePage,currentPage,moment,lookDetail,info,contentTypeModel,arrOne,arrTwo,arrThree,arrFour,infoOne,infoVice
-    }
-  },
-  methods:{
-    
-  }
-})
-</script>
-
-<style lang="scss">
-.recondsInfo{
-  padding: 1em;
-  .page_style{
-    text-align: right; margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-.el-divider__text.is-center{
-  color: #409EFF !important;
-}
-.rowStyle{
-  height: 30px;
-  text-align: center;
-  line-height: 30px;
-}
-</style>

+ 0 - 132
src/views/cattleTrdeValue/referenceInfo.vue

@@ -1,132 +0,0 @@
-<template>
-  <div class="referenceInfo">
-    <Form ref="optClassifyFormRef" :model="optClassifyForm" :label-width="100">
-      <Form-item label="上传图片" prop="filePath">
-        <Upload
-          ref="upload"
-          type="drag"
-          :action="uploadUrl"
-          :headers="{'X-AIYANGNIU-SIGNATURE':token}"
-          :show-upload-list="false"
-          :on-success="handleSuccess"
-          :before-upload="beforeUpload"
-          :format="['jpg','jpeg','png']"
-          :max-size="2048"
-          :on-format-error="handleFormatError"
-          class="upload_outer_img">
-          <div v-if="optClassifyForm.filePath != ''"> <img :src="optClassifyForm.filePath" width="100%" alt=""></div>
-          <div v-else class="upload_border">
-            <p><Icon type="md-cloud-upload" size="35" color="#2db7f5" /></p>
-            <p>点击上传图片</p>
-          </div>
-        </Upload>
-        <div v-show="optClassifyForm.filePath" style="color:#2db7f5; cursor: pointer;" @click="gotoCheckImg(optClassifyForm.filePath)">
-          <i class="iconfont icon-htmal5icon09"></i> 查看大图
-        </div>
-        <div style="color:#aaa;font-size:12px;">图片格式为 jpg、jpeg、png</div>
-      </Form-item>
-      <Form-item label="">
-        <Button type="primary" @click="submitOptClassify">确定提交</Button>
-      </Form-item>
-    </Form>
-  </div>
-</template>
-
-<script>
-import { defineComponent,ref,reactive,onMounted } from 'vue'
-import {item} from '@/request/api'
-import { ElMessage } from 'element-plus'
-import api from '@/request/apiConfig' //真实接口配置
-import {compressFileM} from '@/utils/system/uploadCompress.js'
-export default defineComponent({
-  components:{
-    
-  },
-  setup() {
-    let optClassifyForm = reactive({filePath:''})
-    const token = localStorage.aynUserToken
-    const uploadUrl = api.apiManager + '/manager/images/upload'
-    function beforeUpload(file){
-      // 进行2.5倍系数压缩
-      return (compressFileM(file,2.5))
-    }
-
-    function handleFormatError (file) {
-      ElNotification.warning({
-        title: '温馨提示',
-        message: '文件格式不正确',
-        showClose: false,
-      })
-    }
-
-    function handleSuccess(res, file, fileList){
-      if(res.code == '101'){
-        optClassifyForm.filePath = res.data
-      }
-    }
-
-    // 打开新页面查看照片
-    function gotoCheckImg(pic){
-      window.open(pic,'blank')
-    }
-
-    //获取列表内容
-    async function getData(){
-      await item.getCattleFatness().then(res =>{
-        if (res.code == 101) {
-          optClassifyForm.filePath = res.data?res.data:''
-        }
-      })
-    }
-    // 提交操作分类
-    function submitOptClassify(){
-      item.insertUrl({imgUrl:optClassifyForm.filePath}).then(res=>{
-        if(res.code === 101){
-          ElMessage({
-            message: res.message || '操作成功!',
-            type: 'success',
-          })
-          getData()
-        }else{
-          ElMessage({
-            message: res.message || '操作失败!',
-            type: 'warning',
-          })
-        }
-      })
-    }
-
-    onMounted(()=>{
-      getData() 
-    })
-
-    return {
-      optClassifyForm,uploadUrl,token,
-      getData,handleFormatError,handleSuccess,beforeUpload,gotoCheckImg,submitOptClassify
-    }
-  },
-  methods:{
-    
-  }
-
-})
-</script>
-
-<style lang="scss" scoped>
-.referenceInfo{
-  padding: 1em;
-  .page_style{
-    text-align: right; margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-  .upload_outer_img{
-    max-width: 10%;
-    img{
-      width: 100%; padding: 0;
-    }
-    .upload_border{
-      width: 100%; padding: 3em;
-    }
-  }
-}
-</style>

+ 0 - 315
src/views/classifyManage/classifyManageIndex.vue

@@ -1,315 +0,0 @@
-/**
-  // author:zhangb
-  // time:2022-11-07
-  // desc:牛只分类管理
-*/
-<template>
-  <div class="classifyManage">
-    <!-- top -->
-    <div>
-      <Row>
-        <Col span="24" style="text-align:right;">
-          <Button type="primary" @click="addNewClassify">添加一级分类</Button>
-        </Col>
-      </Row>
-    </div>
-
-    <!-- tree content -->
-    <div class="tree_content">
-      <el-tree :data="dataSource" show-checkbox node-key="typeId" :props="classifyTreePropsSet" :expand-on-click-node="false" style="width:90%;">
-        <template #default="{ node, data }">
-          <div class="custom-tree-node">
-            <span>{{ node.data.name }}</span>
-            <span>输出顺序:{{node.data.sort || '暂无'}}</span>
-            <span style="text-align:right !important;">
-              <a v-show="node.level < 3" @click="addNextClassify(node,data)">添加下级分类</a>
-              <a v-show="node.level === 3" @click="optClassifyImg(node,data)">分类图片</a>
-              <a style="margin-left: 8px" @click="editTreeClassify(node,data)">编辑</a>
-              <a style="margin-left: 8px" @click="delClassidy(node,data)">删除</a>
-            </span>
-          </div>
-        </template>
-      </el-tree>
-    </div>
-
-    <!-- 新增分类信息 -->
-    <Modal v-model="optClassifyModal" :title="optClassifyModalTitle" width="30%">
-      <Tag v-show="optClassifyModalTitle == '添加下级分类'" color="primary" size="medium" style="margin-bottom:1em;">
-        当前上级:{{recordClassifyData.name}}
-      </Tag>
-      <Form ref="optClassifyFormRef" :model="optClassifyForm" :rules="optClassifyRule" :label-width="100">
-        <FormItem prop="name" label="分类名称:">
-          <Input v-model="optClassifyForm.name" placeholder="新增分类名称" style="width:80%;"></Input>
-        </FormItem>
-        <FormItem prop="sort" label="输出排序:">
-          <InputNumber :min="1" v-model="optClassifyForm.sort" placeholder="请输入输出顺序" style="width:80%;" />
-        </FormItem>
-      </Form>
-      <template #footer>
-        <div style="text-align:center;">
-          <Button style="margin-right:5em;" @click="optClassifyModal = false">取消操作</Button>
-          <Button type="primary" @click="submitOptClassify">确定提交</Button>
-        </div>
-      </template>
-    </Modal>
-
-    <!-- 三级分类显示图片 -->
-    <Modal v-model="optClassifyImgModal" :title="optClassifyModalTitle" width="30%">
-      <Tag color="primary" size="medium" style="margin-bottom:1em;">
-        当前分类:{{recordClassifyData.name}}
-      </Tag>
-
-      <div style="margin-left:1rem;">
-        <div style="margin:.5rem 0;">分类图片</div>
-        <Upload
-          type="drag"
-          :action="uploadUrl"
-          :headers="{'X-AIYANGNIU-SIGNATURE':token}"
-          :show-upload-list="false"
-          :on-success="handleSuccess"
-          :before-upload="handleBeforeUpload"
-          :format="['jpg','jpeg','png']"
-          :max-size="2048"
-          :on-format-error="handleFormatError"
-          style="width:100px; height:100px;">
-          <div v-if="!recordClassifyData.picUrl" style="width:100px; height:100px; line-height:100px; font-size:30px; color:#aaa;">
-            <span>+</span>
-          </div>
-          <div v-else style="width:100px; height:100px;"><img :src="recordClassifyData.picUrl" style="width:100%; height:100%;" alt=""></div>
-        </Upload>
-      </div>
-      
-      <template #footer>
-        <div style="text-align:center;">
-          <Button style="margin-right:5em;" @click="optClassifyImgModal = false">取消操作</Button>
-          <Button type="primary" @click="confirmSubClassifyImg">确定提交</Button>
-        </div>
-      </template>
-    </Modal>
-
-  </div>
-</template>
-
-<script>
-import { Message,Modal } from 'view-ui-plus'
-import { defineComponent,reactive,ref,getCurrentInstance, onMounted} from 'vue'
-import { useRouter,useRoute} from 'vue-router'
-import {compressFileM} from '@/utils/system/uploadCompress.js'
-import {cow} from '@/request/api'
-import api from '@/request/apiConfig' //真实接口配置
-export default defineComponent({
-  components:{
-    
-  },
-  setup() {
-    let {proxy} = getCurrentInstance();
-    const route = useRoute()
-    const router = useRouter()
-
-    const token = localStorage.aynUserToken
-    const uploadUrl = api.apiManager + '/manager/images/upload'
-
-    let dataSource = ref([])
-    const classifyTreePropsSet = {label:'name'}
-
-    let optClassifyModal = ref(false)
-    let optClassifyModalTitle = ref('新增分类')
-    let optClassifyForm = reactive({name:'',sort:null,reqRandom:''})
-    let optClassifyRule = ref({
-      name: [{ required: true, message: '请填写分类名称', trigger: 'blur' }],
-      sort: [{ required: true, type:'number', message: '请填写分类输出顺序', trigger: 'blur' }],
-    })
-
-    // 获取全部分类内容
-    async function getAllClassifyData(){
-      await cow.getCattleClassify({parentId:0}).then(res=>{
-        if(res.code === 101){
-          dataSource.value = res.data || []
-        }
-      })
-    }
-
-    // 新增一级分类
-    function addNewClassify(){
-      optClassifyForm.name = '',optClassifyForm.sort = ''
-      optClassifyModal.value = true
-      optClassifyModalTitle.value = '新增分类'
-    }
-
-    let recordClassifyData = ref({})  //当前操作分类
-    // 编辑数节点
-    function editTreeClassify(n,d){
-      recordClassifyData.value = JSON.parse(JSON.stringify(d))
-      optClassifyForm.name = d.name,optClassifyForm.sort = d.sort
-      optClassifyModal.value = true
-      optClassifyModalTitle.value = '编辑分类'
-    }
-
-    // 添加下级分类
-    function addNextClassify(n,d){
-      optClassifyForm.name = '',optClassifyForm.sort = ''
-      recordClassifyData.value = JSON.parse(JSON.stringify(d))
-      optClassifyModal.value = true
-      optClassifyModalTitle.value = '添加下级分类'
-      console.log('数据',recordClassifyData);
-    }
-
-    // 提交操作分类
-    function submitOptClassify(){
-      proxy.$refs['optClassifyFormRef'].validate(async (valid) => {
-        if (valid) {
-          let sendParams = JSON.parse(JSON.stringify(optClassifyForm))
-          let repFun = ''
-          // 新增一级分类
-          if(optClassifyModalTitle.value === '新增分类'){
-            sendParams.parentId = "0"
-            repFun = cow.addCowClassify
-          }
-          // 添加下级分类
-          else if(optClassifyModalTitle.value === '添加下级分类'){
-            sendParams.parentId = recordClassifyData.value.id
-            repFun = cow.addCowClassify
-          }
-          // 编辑分类
-          else if(optClassifyModalTitle.value === '编辑分类'){
-            console.log(recordClassifyData.value);
-            sendParams = JSON.parse(JSON.stringify(recordClassifyData.value))
-            sendParams.name = optClassifyForm.name
-            sendParams.sort = optClassifyForm.sort
-            repFun = cow.updateCowClassify
-          }
-          await repFun(sendParams).then(res=>{
-            if(res.code === 101){
-              optClassifyModal.value = false
-              Message.success({ content: res.retMsg || '操作成功'})
-              getAllClassifyData()
-            }else{
-              Message.error({content: res.retMsg || '操作失败'})
-            }
-          }).catch(e=>{
-            Message.error({content: e.retMsg || '操作失败'})
-          })
-        } else {
-          Message.warning({content: '请填写完整内容'})
-        }
-      })
-    }
-
-    // 删除分类
-    function delClassidy(n,d){
-      Modal.confirm({
-        title: '温馨提示',
-        content: `<p>您确定要删除 <b>${d.name}</b> 分类吗?</p>`,
-        onOk:async () => {
-          cow.deleteCowClassify({ids:d.id}).then(res=>{
-            if(res.code === 101){
-              Message.success(res.retMsg || '操作成功');
-              getAllClassifyData()
-            }else{
-              Message.error({content: res.msg || '操作失败'})
-            }
-          }).catch(e=>{
-            Message.error({content: e.msg || '操作失败'})
-          })
-        },
-        onCancel: () => {
-          Message.info('您已取消操作');
-        }
-      });
-    }
-
-    let optClassifyImgModal = ref(false)
-    // 操作分类图片
-    function optClassifyImg(n,d){
-      recordClassifyData.value = JSON.parse(JSON.stringify(d))
-      optClassifyImgModal.value = true
-    }
-
-    function handleBeforeUpload(file){
-      // 进行2.5倍系数压缩
-      return (compressFileM(file,2.5))
-    }
-
-    function handleSuccess (res, file) {
-      if(res.code === 101){
-        recordClassifyData.value.picUrl = res.data
-      }
-      console.log('结果输出',recordClassifyData.value);
-    }
-
-    function handleFormatError (file) {
-      this.$Notice.warning({
-          title: '温馨提示',
-          desc: '上传失败!'
-      });
-    }
-
-    async function confirmSubClassifyImg(){
-      let sendParams = JSON.parse(JSON.stringify(recordClassifyData.value))
-      await cow.updateCowClassify(sendParams).then(res=>{
-        if(res.code === 101){
-          Message.success(res.retMsg || '操作成功');
-          optClassifyImgModal.value = false
-          getAllClassifyData()
-        }else{
-          Message.error({content: res.msg || '操作失败'})
-        }
-      }).catch(e=>{
-        Message.error({content: e.msg || '操作失败'})
-      })
-    }
-    
-    // 初始化挂载
-    onMounted(async ()=>{
-      getAllClassifyData() //获取分类树
-    })
-
-    return {
-      dataSource,optClassifyModal,optClassifyModalTitle,optClassifyForm,optClassifyRule,recordClassifyData,
-      classifyTreePropsSet,optClassifyImgModal,uploadUrl,token,
-      editTreeClassify,addNewClassify,submitOptClassify,addNextClassify,delClassidy,optClassifyImg,handleSuccess,
-      handleFormatError,handleBeforeUpload,confirmSubClassifyImg
-    }
-  },
-  methods: {
-    
-  }
-})
-</script>
-
-<style lang="scss" scoped>
-.classifyManage{
-  padding: 2em;
-  .tree_content{
-    background-color: #fff;
-    padding: 2em; margin: 2em 0;
-  }  
-  .upload_classify_img{
-    .upload_border{
-      width: 100%; height: 100%;
-    }
-  }
-}
-</style>
-<style lang="scss">
-.classifyManage{
-  .el-tree-node__label{
-    border: 1px solid #000;
-    width: 100%;
-  }
-  .custom-tree-node {
-    width: 100%;
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    font-size: 14px;
-    padding-right: 8px;
-    span{
-      width: 33%;
-    }
-  }
-  .ivu-upload-drag{
-    border: 0px;
-  }
-}
-</style>

+ 0 - 157
src/views/contentManage/contentList.vue

@@ -1,157 +0,0 @@
-<template>
-  <div class="contentList">
-    <Select v-model="typesearchFilter.contentTypeCode" clearable style="width:260px" placeholder="请选择内容类型" @on-change="getData">
-      <Option v-for="item in typeList" :value="item.code" :key="item.id">{{ item.name }}</Option>
-    </Select>
-    <el-button type="primary" style="float:right;" @click="$router.push('newContent')">新增内容</el-button>
-
-    <el-table :data="tabData.data" style="width: 100%; margin-top:2em;" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column prop="contentTypeName" label="类别名称" width="250"> </el-table-column>
-      <el-table-column label="标题名称" width="400">
-        <template #default="scope">
-          {{scope.row.name||'无'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="首页展示" width="120" align="center">
-        <template #default="scope"> 
-         {{scope.row.isShow}}
-        </template>
-      </el-table-column>
-      <el-table-column prop="showOrder" label="顺序号" width="120">
-        <template #default="scope"> 
-         {{scope.row.showOrder || '未排序'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="操作">
-        <template #default="scope">
-          <!--按钮-->
-          <el-button type="primary" size="small" @click="$router.push('editContent?id='+scope.row.id)">编辑</el-button>&nbsp;
-          <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button>&nbsp;
-          <el-button type="warning" v-if="scope.row.status=='2'&&scope.row.contypeId=='00'" size="small" @click.native="auditContent(scope.row.id)">审核</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-    
-
-  </div>
-</template>
-
-<script>
-import { defineComponent,ref,reactive,onMounted } from 'vue'
-import {content} from '@/request/api'
-import { ElMessage } from 'element-plus'
-export default defineComponent({
-  components:{
-    
-  },
-  setup() {
-    
-    let typeList = ref([])
-    let typesearchFilter = reactive({limit:10,offset:0,contentTypeCode:''})
-
-    // 获取分类列表信息
-    async function initData () {
-      await content.GetContentTypeList({limit:1000,offset:0}).then((res) => {
-        if (res.code =='101') {
-          typeList.value = res.data || []
-        }
-      })
-    }
-
-    let tabData = ref({})
-    
-    //获取列表内容
-    async function getData(){
-      await content.GetContentList(typesearchFilter).then(res =>{
-        if (res.code == 101) {
-          tabData.value = res || {}
-        }
-      })
-    }
-
-    let currentPage = ref(1)
-    //更改页码
-    function changePage (page) {
-      if(tabData.value.limit){
-        typesearchFilter.offset = (page -1) *  tabData.value.limit  //更新偏移量
-        currentPage = page  //切换当前页码
-        getData()       //获取广告数据
-      }
-    }
-
-    onMounted(()=>{
-      initData()
-      getData() 
-    })
-
-    return {
-      typeList,
-      typesearchFilter,
-      getData,tabData,changePage,currentPage
-    }
-  },
-  methods:{
-    // 删除内容
-    delContent(id){
-      this.$Modal.confirm({
-        title: '温馨提示',
-        content: '您确定删除当前内容吗?',
-        onOk:async () => {
-          await content.DeleteContent({id:id}).then(res=>{
-            if(res.code == 101){
-              ElMessage({
-                message: res.message || '操作成功!',
-                type: 'success',
-              })
-              this.changePage(1)  //重新获取列表
-            }else{
-              ElMessage({
-                message: res.message || '操作失败!',
-                type: 'warning',
-              })
-            }
-          }).catch(e=>{
-            ElMessage({
-              message: e.message || '添加失败!',
-              type: 'error',
-            })
-          })
-        },
-        onCancel: () => {
-          this.$Message.info('您已取消操作!');
-        }
-      });
-    },
-
-    //审核内容
-    async auditContent(id) {
-        await content.AuditContent({id}).then((res) => {
-          if(res.code == '101') {
-            this.$Message.success(res.message)
-            this.changePage(1)  //重新获取列表
-          }else {
-            this.$Message.error(res.message)
-          }
-        }).catch((err) => {
-          this.$Message.error(err)
-        })
-    },
-  }
-
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList{
-  padding: 1em;
-  .page_style{
-    text-align: right; margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 211
src/views/contentManage/contentTypeList.vue

@@ -1,211 +0,0 @@
-<template>
-  <div class="contentTypeList">
-    <div style="text-align:right;">
-      <el-button type="primary" @click="addNewType">新增类别</el-button>&nbsp;&nbsp;&nbsp;
-      <el-button type="warning" @click="delConType('MULTI')">删除所选</el-button>
-    </div>
-    <el-table ref="contentTypeListTab" :data="typeListData.data" style="width: 100%; margin-top:1.5em;" border>
-      <el-table-column type="selection" width="50" align="center"></el-table-column>
-      <el-table-column label="序号" type="index" width="65" align="center"></el-table-column>
-      <el-table-column label="分类名称" width="450">
-        <template #default="scope">
-          <span>
-            {{scope.row.name || '无'}}
-          </span>
-        </template>
-      </el-table-column>
-      <el-table-column prop="code" label="分类编码" width="250"></el-table-column>
-      <el-table-column label="操作">
-        <template #default="scope">
-          <el-button type="primary" size="small" @click="editConType(scope.row)">编辑</el-button>&nbsp;
-          <el-button type="danger" size="small" @click="delConType(scope.row.id)">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <div class="page_style">
-      <Page :total="typeListData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-    
-    <!-- 编辑弹出层 -->
-    <Modal v-model="contentTypeModel" title="内容类别" ok-text="确定">
-      <Form ref="contentType" :model="contentRowData" :rules="changeRules" :label-width="110" >
-        <Form-item label="类别名称:" prop="name">
-          <Input v-model="contentRowData.name" placeholder="请输入类别名称" style="width:90%;"></Input>
-        </Form-item>
-        <Form-item label="类别编码:" prop="code">
-          <Input v-model="contentRowData.code" placeholder="请输入类别编码" style="width:90%;"></Input>
-        </Form-item>
-      </Form>
-      <template #footer>
-        <div style="text-align:center;">
-          <el-button style="margin-right:3em;" @click="contentTypeModel = false">取消操作</el-button>
-          <el-button type="primary" @click="confirmSub">确定提交</el-button>
-        </div>
-      </template>
-    </Modal> 
-
-  </div>
-</template>
-
-<script>
-import { defineComponent,ref,reactive,onMounted,getCurrentInstance } from 'vue'
-import {content} from '@/request/api'
-import { ElMessage } from 'element-plus'
-export default defineComponent({
-  components:{
-    
-  },
-  setup() {
-    let {proxy} = getCurrentInstance();
-    let pageParams = reactive({limit:10,offset:0})
-    let typeListData = ref({})
-
-    async function getData(){
-      await content.GetContentTypeList(pageParams).then(res =>{
-        if (res.code == 101) {
-          typeListData.value = res || {}
-        }
-      })
-    }
-    
-    let currentPage = ref(1)
-
-    //更改页码
-    function changePage (page) {
-      if(typeListData.value.limit){
-        pageParams.offset = (page -1) *  typeListData.value.limit  //更新偏移量
-        currentPage.value = page  //切换当前页码
-        getData()       //获取广告数据
-      }
-    }
-
-    let contentTypeModel = ref(false)
-    let contentRowData = reactive({name:'',code:'',id:''})
-    // 表单验证项
-    let changeRules = ref({
-      name: [{ required: true, message: '请填写类别名称', trigger: 'blur' }],
-      code: [{ required: true, message: '请输入类型编码', trigger: 'blur' }],
-    })
-    // 确定提交表单  
-    function confirmSub(){
-      let reqFn = null
-      if(contentRowData.id){
-        reqFn = content.UpdateConType
-      }else{
-        reqFn = content.AddNewConType
-      }
-      proxy.$refs['contentType'].validate(async (valid) => {
-        if (valid) {
-          await reqFn(contentRowData).then(res=>{
-            if(res.code == 101){
-              contentTypeModel.value = false
-              ElMessage({
-                message: res.message || '添加成功!',
-                type: 'success',
-              })
-              changePage(1)  //重新获取列表
-            }else{
-              ElMessage({
-                message: res.message || '添加失败!',
-                type: 'warning',
-              })
-            }
-          }).catch(e=>{
-            ElMessage({
-              message: e.message || '添加失败!',
-              type: 'error',
-            })
-          })
-        } else {
-          ElMessage({
-            message:'请填写完表单数据!',
-            type: 'warning',
-          })
-        }
-      })
-    }
-
-    // 编辑内容
-    function editConType(row) {
-      contentTypeModel.value = true
-      let passVal = JSON.parse(JSON.stringify(row))
-      contentRowData.code = passVal.code
-      contentRowData.name = passVal.name
-      contentRowData.id = passVal.id
-    }
-
-    // 新增分类
-    function addNewType(){
-      contentRowData.code = ''
-      contentRowData.name = ''
-      contentRowData.id = ''
-      contentTypeModel.value = true
-    }
-
-    onMounted(()=>{
-      getData() 
-    })
-
-    return {
-      typeListData,
-      getData,changePage,currentPage,
-      editConType,contentTypeModel,contentRowData,changeRules,confirmSub,addNewType
-    }
-  },
-
-  methods:{
-    // 删除分类
-    delConType(id){
-      let params = {}
-      if(id == 'MULTI'){
-        let selection = this.$refs.contentTypeListTab.getSelectionRows(),
-        ids = selection.map(val => val.id).join(',')
-        params = {ids: ids}
-      }else{
-        params = {ids: id}
-      }
-
-      this.$Modal.confirm({
-        title: '温馨提示',
-        content: '您确定删除选中分类吗?',
-        onOk:async () => {
-          await content.DeleteConType(params).then(res=>{
-            if(res.code == 101){
-              ElMessage({
-                message: res.message || '操作成功!',
-                type: 'success',
-              })
-              this.changePage(1)  //重新获取列表
-            }else{
-              ElMessage({
-                message: res.message || '操作失败!',
-                type: 'warning',
-              })
-            }
-          }).catch(e=>{
-            ElMessage({
-              message: e.message || '添加失败!',
-              type: 'error',
-            })
-          })
-        },
-        onCancel: () => {
-          this.$Message.info('您已取消操作!');
-        }
-      });
-    }
-  }
-
-})
-</script>
-
-<style lang="scss" scoped>
-.contentTypeList{
-  padding: 1em;
-  .page_style{
-    text-align: right; margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 249
src/views/contentManage/newContent.vue

@@ -1,249 +0,0 @@
-<template>
-  <div class="newContent">
-    <div>
-      <Form ref="contentForm" :model="newContentForm" :rules="newContentRule" :label-width="120">
-        <Form-item label="牛只分类" prop="contypeId">
-          <Select v-model="newContentForm.contypeId" :label-in-value="true" placeholder="请选择所属分类" style="width:480px">
-            <Option v-for="type in typeDataList" :key="type.id" :value="type.code" :label="type.name">{{type.name}}</Option>
-          </Select>
-        </Form-item>
-        <Form-item label="新闻类型" prop="newsType">
-          
-          <Select v-model="newContentForm.newsType" placeholder="请选择新闻类型" style="width:480px">
-            <Option value="新闻类型">新闻类型</Option>
-            <Option value="平台动态">平台动态</Option>
-            <Option value="运营资讯">运营资讯</Option>
-            <Option value="媒体报道">媒体报道</Option>
-          </Select>
-        </Form-item>
-        <Form-item label="发布时间" prop="releaseTime">
-          <Date-picker type="date" placeholder="选择日期"
-          format="yyyy-MM-dd"
-          :options="options"
-          v-model="newContentForm.releaseTime"/>
-        </Form-item>
-        <Form-item label="内容名称" prop="name">
-          <Input v-model="newContentForm.name" placeholder="请输入内容名称" style="width: 480px"></Input>
-          <!-- <span v-if="item.type==3||item.newsType==4">9个字符以内</span>
-          <span v-else>6个字符以内</span> -->
-        </Form-item>
-        <Form-item label="链接地址" prop="url">
-          <Input v-model="newContentForm.url" placeholder="请输入链接地址" style="width: 480px"></Input>
-        </Form-item>
-        <Form-item label="首页展示" prop="isShow">
-          <RadioGroup v-model="newContentForm.isShow" type="button">
-            <Radio label="1">是</Radio>
-            <Radio label="0">否</Radio>
-          </RadioGroup>
-        </Form-item>
-        <Form-item label="顺序号" prop="showOrder">
-          <Input v-model="newContentForm.showOrder" placeholder="请输入顺序号" style="width: 200px"></Input>
-        </Form-item>
-       
-        <Form-item label="上传图片" prop="filePath">
-          <Upload
-            ref="upload"
-            type="drag"
-            :action="uploadUrl"
-            :headers="{'X-AIYANGNIU-SIGNATURE':token}"
-            :show-upload-list="false"
-            :on-success="handleSuccess"
-            :before-upload="beforeUpload"
-            :format="['jpg','jpeg','png']"
-            :max-size="2048"
-            :on-format-error="handleFormatError"
-            class="upload_outer_img">
-            <div v-if="!newContentForm.filePath" class="upload_border">
-              <p><Icon type="md-cloud-upload" size="35" color="#2db7f5" /></p>
-              <p>点击上传图片</p>
-            </div>
-            <div v-else> <img :src="newContentForm.filePath" width="100%" alt=""></div>
-          </Upload>
-          <div v-show="newContentForm.filePath" style="color:#2db7f5; cursor: pointer;" @click="gotoCheckImg(newContentForm.filePath)">
-            <i class="iconfont icon-htmal5icon09"></i> 查看大图
-          </div>
-          <div style="color:#aaa;font-size:12px;">图片格式为 jpg、jpeg、png</div>
-        </Form-item>
-        <Form-item label="简介" prop="intro">
-            <Input v-model="newContentForm.intro" placeholder="请输入内容简介" type="textarea" :autosize="{minRows: 2,maxRows: 5}" style="width: 480px"></Input>
-        </Form-item>
-        <Form-item label="内容详情" prop="content">
-          <BasicEditor ref="editotTool"></BasicEditor>
-        </Form-item>
-      </Form>
-    </div>
-    <div style="text-align:center;margin-bottom:3em;">
-      <Button @click="$router.back()" style="margin-right:5em;">取消返回</Button>
-      <Button type="primary" @click="conformSub">确定提交</Button>
-    </div>
-  </div>
-</template>
-
-<script>
-import { defineComponent,ref,reactive,onMounted,getCurrentInstance } from 'vue'
-import {compressFileM} from '@/utils/system/uploadCompress.js'
-import {content} from '@/request/api'
-import api from '@/request/apiConfig' //真实接口配置
-import {ElNotification} from 'element-plus'
-import BasicEditor from '@/components/wangEditor/BasicEditor.vue'
-import { ElMessage } from 'element-plus'
-import router from '@/router'
-export default defineComponent({
-  components:{
-    BasicEditor
-  },
-  setup() {
-    const token = localStorage.aynUserToken
-    let {proxy} = getCurrentInstance();
-    let newContentForm = reactive({contypeId: '',newsType: '',isShow: '1',showOrder: '',name:'',url:'',releaseTime:'',filePath: '',intro:'',content:''})
-    const options= {
-      disabledDate (date) {
-          return date && date.valueOf() < Date.now() - 86400000;
-      }
-    }
-    // 表单验证项
-    let newContentRule = ref({
-      contypeId: [{ required: true, message: '请选择所属类别', trigger: 'change' }],
-      newsType: [{ required: true, message: '请选择新闻类型', trigger: 'change' }],
-      releaseTime: [{ required: true, type:'date', message: '请选择发布时间', trigger: 'change' }],
-      name: [{ required: true, message: '请填写内容名称', trigger: 'blur' }],
-      isShow: [{ required: true, message: '请选择展示状态', trigger: 'change' }],
-    })
-    const uploadUrl = api.apiManager + '/manager/images/upload'
-
-    // 获取分类的列表
-    let typeDataList = ref([])
-    async function getTypeDataList(){
-      await content.GetContentTypeList({limit:10000,offset:0}).then((res) => {
-        if (res.code =='101') {
-          typeDataList.value = res.data || []
-        }
-      })
-    }
-    
-    function beforeUpload(file){
-      // 进行2.5倍系数压缩
-      return (compressFileM(file,2.5))
-    }
-
-    function handleFormatError (file) {
-      ElNotification.warning({
-        title: '温馨提示',
-        message: '文件格式不正确',
-        showClose: false,
-      })
-    }
-
-    function handleSuccess(res, file, fileList){
-      if(res.code == '101'){
-        newContentForm.filePath = res.data
-      }
-    }
-
-    // 打开新页面查看照片
-    function gotoCheckImg(pic){
-      window.open(pic,'blank')
-    }
-
-    // 编辑获取详情内容
-    async function getContentDetail(){
-      await content.GetContentDetail({id: router.currentRoute.value.query.id}).then(res => {
-        if(res.code == '101' && res.data) {
-          let _data = res.data
-          newContentForm = Object.assign(newContentForm, {
-            contypeId: _data.contypeId,
-            newsType: _data.newsType,
-            isShow: _data.isShow,
-            name: _data.name,
-            url: _data.url,
-            showOrder: _data.showOrder,
-            intro: _data.intro,
-            content: _data.content,
-            filePath: _data.filePath,
-            id:_data.id,
-            releaseTime: new Date(_data.releaseTime),
-          })
-          proxy.$refs.editotTool.valueHtml = _data.content
-        }
-      })
-    }
-
-    // 确定提交表单
-    function conformSub(){
-      newContentForm.content = proxy.$refs.editotTool.valueHtml  //富文本传值
-      let reqFn = null
-      if(newContentForm.id){
-        reqFn = content.UpdateContent
-      }else{
-        reqFn = content.AddNewContent
-      }
-      proxy.$refs['contentForm'].validate(async (valid) => {
-        if (valid) {
-          await reqFn(newContentForm).then(res=>{
-            if(res.code == 101){
-              ElMessage({
-                message: res.message || '添加成功!',
-                type: 'success',
-              })
-              router.back()
-            }else{
-              ElMessage({
-                message: res.message || '添加失败!',
-                type: 'warning',
-              })
-            }
-          }).catch(e=>{
-            ElMessage({
-              message: e.message || '添加失败!',
-              type: 'error',
-            })
-          })
-        } else {
-          ElMessage({
-            message:'请填写完表单数据!',
-            type: 'warning',
-          })
-        }
-      })
-    }
-
-    onMounted(async()=>{
-      getTypeDataList()
-      // 编辑获取详情
-      if(router.currentRoute.value.path === '/contentManage/editContent'){
-        getContentDetail()
-      }
-    })
-
-    return {
-      uploadUrl,token,options,
-      newContentForm,typeDataList,newContentRule,
-      handleFormatError,handleSuccess,beforeUpload,gotoCheckImg,conformSub
-    }
-  },
-
-})
-</script>
-
-<style lang="scss" scoped>
-.newContent{
-  padding: 1em;
-  .upload_outer_img{
-    max-width: 45%;
-    img{
-      width: 100%; padding: 0;
-    }
-    .upload_border{
-      width: 100%; padding: 3em;
-    }
-  }
-  
-}
-</style>
-<style lang="scss">
-.newContent{
-  .ivu-upload-drag{
-    border: 0px;
-  }
-}
-</style>

+ 0 - 139
src/views/intentManage/buyIntent.vue

@@ -1,139 +0,0 @@
-<template>
-  <div class="contentList">
-    <Input v-model="typesearchFilter.name" placeholder="请输入标题名称" style="width: 480px"></Input>
-
-    <el-button type="primary" @click="changePage(1)">查询</el-button>
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="发布时间" width="160" align="center">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人" width="100" prop="contactName" align="center"></el-table-column>
-      <el-table-column label="联系电话" width="120" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="信息标题" prop="name" width="200"></el-table-column>
-      <el-table-column label="状态" align="center" width="100">
-        <template #default="scope">
-          <Tag color="orange" v-if="scope.row.status == 4">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="green" v-if="scope.row.status == 3">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="red" v-if="scope.row.status == 2">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="blue" v-if="scope.row.status == 1">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="skyblue" v-if="scope.row.status == 5">{{ publishStatus(scope.row.status) }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只分类" width="200">
-        <template #default="scope">
-          {{ scope.row.classifyOneName }}/{{ scope.row.classifyTwoName }}/{{ scope.row.classifyThreeName }}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只规格重量" prop="weight" min-width="120">
-        <template #default="scope">
-          <Tag color="blue">{{ scope.row.weight }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column prop="buyPrice" label="意向价格" align="center" min-width="120">
-        <template #default="scope">
-          <b style="color: red">{{ scope.row.price }}</b>
-        </template>
-      </el-table-column>
-      <el-table-column label="销售数量" min-width="120" align="center">
-        <template #default="scope">
-          {{ scope.row.count }}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只图片" align="center" width="120">
-        <template #default="scope">
-          <img :src="scope.row.imageUrl" style="width: 100%" />
-        </template>
-      </el-table-column>
-      <el-table-column label="发布天数" align="center" width="100" prop="validDays"></el-table-column>
-      <el-table-column label="操作" fixed="right" width="120">
-        <template #default="scope">
-          <!--按钮-->
-          <!-- <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button> -->
-          <el-button type="primary" @click="showDetail(scope.row.id)">查看意向单</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-
-    <el-dialog v-model="dialogTableVisible" v-loading="tableLoading" title="报价列表" width="850">
-      <el-table :data="tableData" border>
-        <el-table-column property="contactName" label="报价人" width="150" />
-        <el-table-column property="contactPhone" label="联系方式" width="150" />
-        <el-table-column property="intendPrice" label="报价金额(元/公斤)" />
-        <el-table-column property="intendCount" label="报价数量(头)" />
-        <el-table-column property="validTime" label="报价有效期(天)" />
-        <el-table-column property="status" label="状态">
-          <template #default="scope">
-            {{ intentionStatus(scope.row.status) }}
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import { Modal } from 'view-ui-plus'
-import { publishStatus, intentionStatus } from '@/utils/system/filters'
-import moment from 'moment'
-import { cow } from '@/request/api'
-let typesearchFilter = reactive({ limit: 10, offset: 0, type: 2, hasIntent: 1 })
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.getCattleDealPageByAdminAndType(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-const tableData = ref([])
-let dialogTableVisible = ref(false)
-let tableLoading = ref(false)
-async function showDetail(id) {
-  tableLoading.value = true
-  dialogTableVisible.value = true
-  await cow.intendList({ dealId: id, limit: 1000 }).then(res => {
-    tableData.value = res.data
-  })
-  tableLoading.value = false
-}
-
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 163
src/views/intentManage/sellIntent.vue

@@ -1,163 +0,0 @@
-<template>
-  <div class="contentList">
-    <Input v-model="typesearchFilter.name" placeholder="请输入标题名称" style="width: 480px"></Input>
-
-    <el-button type="primary" @click="changePage(1)">查询</el-button>
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="发布时间" width="180">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人" width="100" prop="contactName" align="center"></el-table-column>
-      <el-table-column label="联系电话" width="120" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="信息标题" prop="name" width="200"></el-table-column>
-      <el-table-column label="状态" align="center" width="100">
-        <template #default="scope">
-          <Tag color="orange" v-if="scope.row.status == 4">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="green" v-if="scope.row.status == 3">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="red" v-if="scope.row.status == 2">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="blue" v-if="scope.row.status == 1">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="skyblue" v-if="scope.row.status == 5">{{ publishStatus(scope.row.status) }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只分类" width="200">
-        <template #default="scope">
-          {{ scope.row.classifyOneName }}/{{ scope.row.classifyTwoName }}/{{ scope.row.classifyThreeName }}
-        </template>
-      </el-table-column>
-      <el-table-column prop="price" label="意向采购单价" align="center" width="130">
-        <template #default="scope">
-          <b style="color: red">{{ scope.row.price }}</b>
-        </template>
-      </el-table-column>
-      <el-table-column label="采购数量" prop="count" align="center" min-width="100">
-        <template #default="scope">
-          {{ scope.row.count }}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只重量" prop="weight" min-width="100">
-        <!-- <template #default="scope">
-          <Tag color="blue">{{ scope.row.weight }}</Tag>
-        </template> -->
-      </el-table-column>
-      <el-table-column label="牛只膘情">
-        <template #default="scope">
-          <Tag color="#B62D4A" v-for="item in scope.row.fatInfo.split('#')">{{ item }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="采购地区">
-        <template #default="scope">
-          <Icon type="md-pin" color="#2db7f5" />
-          <span style="color: #999; font-size: 12px">{{ scope.row.addressInfo }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="发布天数" align="center" width="100" prop="validDays"></el-table-column>
-
-      <el-table-column label="操作" width="120" fixed="right">
-        <template #default="scope">
-          <!--按钮-->
-          <!-- <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button> -->
-          <el-button type="primary" @click="showDetail(scope.row.id)">查看意向单</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-
-    <el-dialog v-model="dialogTableVisible" v-loading="tableLoading" title="报价列表" width="850px">
-      <el-table border :data="tableData">
-        <el-table-column property="contactName" label="报价人" width="150" />
-        <el-table-column property="contactPhone" label="联系方式" width="150" />
-        <el-table-column property="validTime" label="报价有效期(天)" />
-        <el-table-column property="intendPrice" label="报价金额(元/公斤)" />
-        <el-table-column property="intendCount" label="报价数量(头)" />
-        <el-table-column property="addTime" label="报价时间">
-          <template #default="scope">
-            {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="status" label="状态">
-          <template #default="scope">
-            {{ intentionStatus(scope.row.status) }}
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-dialog>
-    <el-dialog v-model="videoShow" title="视频播放">
-      <div style="text-align: center">
-        <video :src="videoUrl" style="max-width: 780px" controls></video>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import { Modal } from 'view-ui-plus'
-import { publishStatus, intentionStatus } from '@/utils/system/filters'
-import moment from 'moment'
-import previewImage from '../../components/imgPreview'
-import { cow } from '@/request/api'
-let typesearchFilter = reactive({ limit: 10, offset: 0, type: 1, hasIntent: 1 })
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.getCattleDealPageByAdminAndType(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-const tableData = ref([])
-let dialogTableVisible = ref(false)
-let tableLoading = ref(false)
-async function showDetail(id) {
-  tableLoading.value = true
-  dialogTableVisible.value = true
-  await cow.intendList({ dealId: id, limit: 1000 }).then(res => {
-    tableData.value = res.data
-  })
-  tableLoading.value = false
-}
-
-const videoUrl = ref('')
-const videoShow = ref(false)
-function showVideo(url) {
-  videoUrl.value = url
-  videoShow.value = true
-}
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 362
src/views/orderManage/buyOrder.vue

@@ -1,362 +0,0 @@
-<template>
-  <div class="contentList">
-    <Input v-model="typesearchFilter.name" placeholder="请输入标题名称" style="width: 480px"></Input>
-
-    <el-button type="primary" @click="changePage(1)">查询</el-button>
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="发布时间" width="160" align="center">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人" width="100" prop="contactName" align="center"></el-table-column>
-      <el-table-column label="联系电话" width="120" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="信息标题" prop="name" width="200"></el-table-column>
-      <el-table-column label="状态" align="center" width="100">
-        <template #default="scope">
-          <Tag color="orange" v-if="scope.row.status == 4">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="green" v-if="scope.row.status == 3">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="red" v-if="scope.row.status == 2">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="blue" v-if="scope.row.status == 1">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="skyblue" v-if="scope.row.status == 5">{{ publishStatus(scope.row.status) }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只分类" width="200">
-        <template #default="scope">
-          {{ scope.row.classifyOneName }}/{{ scope.row.classifyTwoName }}/{{ scope.row.classifyThreeName }}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只规格重量" prop="weight" min-width="120">
-        <template #default="scope">
-          <Tag color="blue">{{ scope.row.weight }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column prop="buyPrice" label="意向价格" align="center" min-width="120">
-        <template #default="scope">
-          <b style="color: red">{{ scope.row.price }}</b>
-        </template>
-      </el-table-column>
-      <el-table-column label="销售数量" min-width="120" align="center">
-        <template #default="scope">
-          {{ scope.row.count }}
-        </template>
-      </el-table-column>
-      <!-- <el-table-column label="牛只图片" align="center" width="120">
-        <template #default="scope">
-          <img :src="scope.row.imageUrl" style="width: 100%" />
-        </template>
-      </el-table-column> -->
-      <el-table-column label="发布天数" align="center" width="100" prop="validDays"></el-table-column>
-      <el-table-column label="操作" fixed="right" width="220">
-        <template #default="scope">
-          <!--按钮-->
-          <!-- <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button> -->
-          <el-button type="primary" size="small" @click="showDetail(scope.row.id)" style="margin-right: 5px"
-            >查看订单</el-button
-          >
-          <el-button
-            type="primary"
-            size="small"
-            @click="router.push({ path: '/userPublishSellManage/publishDetail', query: { id: scope.row.id } })"
-            >查看卖牛消息</el-button
-          >
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-
-    <el-dialog v-model="dialogTableVisible" title="报价列表" width="850">
-      <el-table
-        :data="tableData"
-        v-loading="tableLoading"
-        border
-        @expand-change="checkSubOrder"
-        :row-key="getRowKeys"
-        :expand-row-keys="expands"
-      >
-        <el-table-column type="expand" label="子订单">
-          <template #default="props">
-            <el-table v-loading="tableLoading" :data="subOrdertableData" border>
-              <el-table-column label="发运头数" prop="finalCount">
-                <template #default="scope">
-                  {{ scope.row.finalCount && scope.row.status != 6 ? scope.row.finalCount : scope.row.orderCount }}
-                </template>
-              </el-table-column>
-              <el-table-column label="牛只总重" prop="finalWeight">
-                <template #default="scope">
-                  {{ scope.row.finalWeight && scope.row.status != 6 ? scope.row.finalWeight : scope.row.orderWeight }}
-                </template>
-              </el-table-column>
-              <el-table-column label="总计金额(元)" prop="city">
-                <template #default="scope">
-                  <span style="color: #333333" v-if="scope.row.finalWeight && scope.row.status != 6">{{
-                    (scope.row.finalWeight * scope.row.orderPrice).toFixed(2)
-                  }}</span>
-                  <span style="color: #333333" v-else>{{
-                    (scope.row.orderWeight * scope.row.orderPrice).toFixed(2)
-                  }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="发运榜单" prop="address">
-                <template #default="scope">
-                  <img
-                    style="width: 80px; height: 80px"
-                    @click="
-                      previewImage({
-                        urlList: [
-                          scope.row.updateWeightBill && scope.row.status != 6
-                            ? scope.row.updateWeightBill
-                            : scope.row.weightBill,
-                        ],
-                      })
-                    "
-                    :src="
-                      scope.row.updateWeightBill && scope.row.status != 6
-                        ? scope.row.updateWeightBill
-                        : scope.row.weightBill
-                    "
-                  />
-                </template>
-              </el-table-column>
-              <el-table-column label="状态" prop="zip">
-                <template #default="scope">
-                  {{ subOrderStatus(scope.row.status) }}
-                </template>
-              </el-table-column>
-            </el-table>
-          </template>
-        </el-table-column>
-        <el-table-column property="contactName" label="中标人" width="150" />
-        <el-table-column property="contactPhone" label="联系方式" width="150" />
-        <el-table-column property="orderPrice" label="成交价格(元/公斤)" />
-        <el-table-column property="orderCount" label="成交数量(头)" />
-        <el-table-column property="intendCount" label="中标时间">
-          <template #default="scope">
-            {{ moment(scope.row.updateTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="status" label="状态">
-          <template #default="scope">
-            {{ orderStatus(scope.row.status) }}
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" fixed="right" width="240">
-          <template #default="scope">
-            <el-button
-              type="primary"
-              v-if="scope.row.buySaleContractId"
-              size="small"
-              @click="downloadFile(scope.row)"
-              style="margin-right: 5px"
-              >下载买卖合同</el-button
-            >
-
-            <el-button
-              type="primary"
-              v-if="scope.row.shopContract"
-              size="small"
-              @click="openUrl(scope.row.shopContract)"
-              >下载服务合同</el-button
-            >
-            <el-button type="primary" v-else size="small" @click="uploadEcontract(scope.row)">上传服务合同</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <el-dialog v-model="contractShow" append-to-body title="上传服务费合同" width="500">
-        <el-upload
-          :action="uploadUrl"
-          :on-success="onSuccess"
-          ref="upload"
-          :headers="{ 'X-AIYANGNIU-SIGNATURE': token }"
-          :on-exceed="handleExceed"
-          v-model:file-list="fileList"
-          :on-preview="handlePreview"
-          :limit="1"
-          drag
-        >
-          <div class="el-upload__text">将文件拖拽至此或者 <em>点击上传</em></div>
-        </el-upload>
-        <template #footer>
-          <div class="dialog-footer">
-            <el-button @click="contractShow = false">取消</el-button>
-            <el-button type="primary" @click="submitFile"> 确认 </el-button>
-          </div>
-        </template>
-      </el-dialog>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import { publishStatus, orderStatus, subOrderStatus } from '@/utils/system/filters'
-import moment from 'moment'
-import { cow, econtract } from '@/request/api'
-import previewImage from '../../components/imgPreview'
-import { useRouter } from 'vue-router'
-import api from '@/request/apiConfig' //真实接口配置
-import { ElMessage } from 'element-plus'
-
-let dealId = ''
-
-const router = useRouter()
-
-const token = localStorage.aynUserToken
-const uploadUrl = api.apiManager + '/manager/images/upload'
-const fileList = ref([])
-const upload = ref()
-const shopFeeContractUrl = ref('')
-const contractShow = ref(false)
-
-const onSuccess = (res, file) => {
-  console.log(res)
-  fileList.value = []
-  fileList.value.push(file)
-  shopFeeContractUrl.value = res.data
-}
-const handleExceed = (files, fileList) => {
-  upload.value.clearFiles()
-  const file = files[0]
-  file.uid = genFileId()
-  upload.value.handleStart(file)
-  upload.value.submit()
-}
-
-const currentRow = ref({})
-function uploadEcontract(row) {
-  currentRow.value = row
-  contractShow.value = true
-}
-
-const submitFile = () => {
-  econtract
-    .uploadSignedShopFeeContract({
-      orderNum: currentRow.value.orderNum,
-      shopContract: shopFeeContractUrl.value,
-    })
-    .then(res => {
-      console.log(res)
-      if (res.code == 101) {
-        contractShow.value = false
-        ElMessage({
-          message: res.message || '上传成功!',
-          type: 'success',
-        })
-        showDetail(dealId)
-      } else {
-        ElMessage({
-          message: res.message || '上传失败!',
-          type: 'warning',
-        })
-      }
-    })
-}
-function downloadFile(row) {
-  econtract
-    .getContractDownloadUrl({ buySaleContractId: row.buySaleContractId })
-    .then(res => {
-      if (res.code == 101) {
-        window.open(res.data)
-      } else {
-        ElMessage({
-          message: res.message || '下载失败!',
-          type: 'warning',
-        })
-      }
-    })
-    .catch(err => {
-      ElMessage({
-        message: err.message || '下载失败!',
-        type: 'error',
-      })
-    })
-}
-
-function openUrl(url) {
-  window.open(url)
-}
-
-let typesearchFilter = reactive({ limit: 10, offset: 0, type: 2, hasOrder: 1 })
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.getCattleDealPageByAdminAndType(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-const tableData = ref([])
-let dialogTableVisible = ref(false)
-let tableLoading = ref(false)
-async function showDetail(id) {
-  if (id) {
-    dealId = id
-  }
-  tableLoading.value = true
-  dialogTableVisible.value = true
-  await cow.orderList({ dealId: id, limit: 1000 }).then(res => {
-    tableData.value = res.data
-  })
-  tableLoading.value = false
-}
-
-const subOrdertableData = ref([])
-const expands = ref([])
-let getRowKeys = row => {
-  //row是当前行的数据
-  //给每行绑定唯一的标识
-  return row.id
-}
-
-async function checkSubOrder(row, expandedRows) {
-  if (expandedRows.length > 0) {
-    tableLoading.value = true
-    expands.value = [] //先干掉之前展开的行
-    if (row) {
-      expands.value.push(row.id) //push新的行 (原理有点类似防抖)
-    }
-    await cow.splitOrderList({ id: row.id, limit: 1000 }).then(res => {
-      subOrdertableData.value = res.data
-    })
-    tableLoading.value = false
-  } else {
-    expands.value = [] //先干掉之前展开的行
-  }
-}
-
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 169
src/views/orderManage/contractManage.vue

@@ -1,169 +0,0 @@
-<template>
-  <div class="contentList">
-    <el-button type="primary" @click="dialogTableVisible = true">上传服务合同</el-button>
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-
-      <el-table-column label="合同编号" prop="contactName" align="center"></el-table-column>
-      <el-table-column label="合同甲方" prop="contactName" align="center"></el-table-column>
-      <el-table-column label="合同乙方" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="合同金额" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="发布时间" align="center">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="签署文件" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="备注" prop="contactCell" align="center"></el-table-column>
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-
-    <el-dialog v-model="dialogTableVisible" title="服务合同上传" width="650">
-      <el-form v-model="form" ref="formRef" label-width="100px">
-        <el-form-item label="合同编号">
-          <el-input v-model="form.contactName" placeholder="请输入合同编号"></el-input>
-        </el-form-item>
-        <el-form-item label="合同甲方">
-          <el-input v-model="form.contactName" placeholder="请输入合同甲方"></el-input>
-        </el-form-item>
-        <el-form-item label="合同乙方">
-          <el-input v-model="form.contactName" placeholder="请输入合同乙方"></el-input>
-        </el-form-item>
-        <el-form-item label="合同金额">
-          <el-input v-model="form.contactName" placeholder="请输入合同金额"></el-input>
-        </el-form-item>
-        <el-form-item label="签署日期">
-          <el-date-picker v-model="form.contactName" placeholder="选择日期"></el-date-picker>
-        </el-form-item>
-        <el-form-item label="合同文件">
-          <el-upload
-            style="width: 50%"
-            :action="uploadUrl"
-            :on-success="onSuccess"
-            ref="upload"
-            :headers="{ 'X-AIYANGNIU-SIGNATURE': token }"
-            :on-exceed="handleExceed"
-            v-model:file-list="fileList"
-            :limit="1"
-          >
-            <el-button type="primary">点击上传</el-button></el-upload
-          >
-        </el-form-item>
-        <el-form-item label="备注">
-          <el-input type="textarea" v-model="form.contactName" placeholder="请输入备注"></el-input>
-        </el-form-item>
-        <el-form-item>
-          <div style="width: 80%; text-align: center">
-            <el-button type="primary" @click="submitForm(formRef)" :loading="loading"> 提交 </el-button>
-          </div>
-        </el-form-item>
-      </el-form>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import { Modal } from 'view-ui-plus'
-import { publishStatus, intentionStatus } from '@/utils/system/filters'
-import moment from 'moment'
-import { cow } from '@/request/api'
-let typesearchFilter = reactive({ limit: 10, offset: 0, type: 2, hasIntent: 1 })
-import api from '@/request/apiConfig' //真实接口配置
-
-const form = ref({})
-const formRef = ref()
-
-const token = localStorage.aynUserToken
-const uploadUrl = api.apiManager + '/manager/images/upload'
-const fileList = ref([])
-
-const onSuccess = (res, file) => {
-  console.log(res)
-  fileList.value = []
-  fileList.value.push(file)
-  form.value.shopFeeContractUrl = res.data
-}
-const upload = ref()
-const handleExceed = (files, fileList) => {
-  upload.value.clearFiles()
-  const file = files[0]
-  file.uid = genFileId()
-  upload.value.handleStart(file)
-  upload.value.submit()
-}
-const submitForm = async formEl => {
-  if (!formEl) return
-  await formEl.validate((valid, fields) => {
-    if (valid) {
-      loading.value = true
-      cow
-        .updateServiceFee(form.value)
-        .then(res => {
-          loading.value = false
-          Message.success('更新成功')
-          getServiceFee()
-        })
-        .catch(err => {
-          loading.value = false
-        })
-    } else {
-      console.log('error submit!', fields)
-    }
-  })
-}
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.getCattleDealPageByAdminAndType(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-const tableData = ref([])
-let dialogTableVisible = ref(false)
-let tableLoading = ref(false)
-async function showDetail(id) {
-  tableLoading.value = true
-  dialogTableVisible.value = true
-  await cow.intendList({ dealId: id, limit: 1000 }).then(res => {
-    tableData.value = res.data
-  })
-  tableLoading.value = false
-}
-
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 474
src/views/orderManage/orderDetail.vue

@@ -1,474 +0,0 @@
-/**
-  // author:zhangyy
-  // time:2023-02-09
-  // desc:订单详情
-*/
-<template>
-  <div class="orderDetail">
-    <div style="text-align:right;margin:1em 0;"><el-button @click="$router.back()">返回</el-button></div>
-    <div class="detail_order_num"><Icon type="ios-paper-outline" style="margin:0 0.5rem"/>
-      <b>订单编号:{{orderDataList.orderNum}}</b>
-      <b style="float:right;color:#ed4014;">{{orderStateDisplay(orderDataList.status)}}</b>
-    </div>
-    <div class="order_detail_box">
-      <!-- 卖家信息 -->
-      <div class="detail_buyer_box">
-        <h3>买家信息</h3>
-        <div>买家账户:{{orderDataList.userName}}</div>
-        <div>收货人:{{orderDataList.cattleOrderAddress.contacts}}</div>
-        <div>联系方式:{{orderDataList.cattleOrderAddress.phone}}</div>
-        <div>
-          收货地址:
-          {{orderDataList.cattleOrderAddress.province}}
-          {{orderDataList.cattleOrderAddress.city}}
-          {{orderDataList.cattleOrderAddress.area}}
-          {{orderDataList.cattleOrderAddress.addressInfo}}
-        </div>
-      </div>
-      <!-- 订单信息 -->
-      <div class="detail_order_box">
-        <h3>订单信息</h3>
-        <div>下单时间:{{moment(orderDataList.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无'}}</div>
-        <div>下单数量:{{orderDataList.count || 0}} 头</div>
-        <div>
-          订单总金额:
-          <Numeral :value="orderDataList.totalMoney || 0" format="0,0.00">
-            <template #prefix>
-              <strong>¥</strong>
-            </template>
-          </Numeral>
-        </div>
-        <div>
-          订金总金额:
-          <Numeral :value="orderDataList.firstMoney || 0" format="0,0.00">
-            <template #prefix>
-              <strong>¥</strong>
-            </template>
-          </Numeral>
-        </div>
-        <div>
-          尾款金额:
-          <Numeral :value="orderDataList.lastMoney || 0" format="0,0.00">
-            <template #prefix>
-              <strong>¥</strong>
-            </template>
-          </Numeral>
-        </div>
-        <div>备注信息:{{orderDataList.remark || '无'}}</div>
-      </div>
-      <!-- 支付状态 -->
-      <div class="detail_pay_box">
-        <h3>支付信息</h3>
-        <div>订金支付:{{payStateDisplay(orderDataList.payStatus)}}</div>
-        <div>尾款支付:{{orderStateDisplay(orderDataList.status)}}</div>
-      </div>
-      <!-- 开票信息  -->
-      <div class="detail_invoice_box">
-        <h3>开票信息</h3>
-        <span v-if="orderDataList.cattleOrderInvoice && orderDataList.cattleOrderInvoice.id">
-          <div>发票抬头:{{orderDataList.cattleOrderInvoice.companyName}}</div>
-          <div>统一社会信用代码:{{orderDataList.cattleOrderInvoice.taxNum}}</div>
-          <div>注册地址:{{orderDataList.cattleOrderInvoice.companyAddress}}</div>
-          <div>电话:{{orderDataList.cattleOrderInvoice.contactCell}}</div>
-          <div>开户银行:{{orderDataList.cattleOrderInvoice.bankName}}</div>
-          <div>银行账号:{{orderDataList.cattleOrderInvoice.bankNum}}</div>
-        </span>
-        <div v-else>买家不需开票</div>
-      </div>
-      <!-- 申请售后  -->
-      <div class="detail_invoice_box" v-if="orderDataList.cattleAfterSale && orderDataList.cattleAfterSale.id">
-        <h3>申请售后</h3>
-        <span>
-          <div>售后状态:
-            <span v-if="orderDataList.cattleAfterSale.status == 1" style="color:#ff9900;font-weight:bold;">申请退款待审核</span>
-            <span v-if="orderDataList.cattleAfterSale.status == 2" style="color:#19be6b;font-weight:bold;">审核通过已退款</span>
-            <span v-if="orderDataList.cattleAfterSale.status == 3" style="color:#ed4014;font-weight:bold;">审核已拒绝</span>
-          </div>
-          <div>申请时间:{{moment(orderDataList.cattleAfterSale.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无'}}</div>
-          <div>退款理由:{{orderDataList.cattleAfterSale.reason}}</div>
-          <div>退款说明:{{orderDataList.cattleAfterSale.content}}</div>
-          <div v-if="orderDataList.cattleAfterSale.refuseReason">拒绝原因:{{orderDataList.cattleAfterSale.refuseReason}}</div>
-          <div v-if="orderDataList.cattleAfterSale.status == 1">
-            <Button size="small" type="error" @click="auditRefundM(3)">拒绝申请</Button>
-            <Button size="small" type="success" style="margin-left:1em;" @click="auditRefundM(2)">同意退款</Button>
-          </div>
-        </span>
-      </div>
-    </div>
-
-    <div style="margin:1em 0;">
-      <el-table :data="[orderDataList]" style="width: 100%" border size="small">
-        <el-table-column label="商品图片" width="160" >
-          <template #default="scope">
-            <img :src="scope.row.imgUrl" style="width:100%;" alt="">
-          </template>
-        </el-table-column>
-        <el-table-column prop="itemName" label="商品名称" width="180" />
-        <el-table-column prop="weight" label="规格" width="180" />
-        <el-table-column label="单价(/头)" width="120">
-          <template #default="scope">
-            <Numeral :value="scope.row.price || 0" format="0,0.00">
-              <template #prefix>
-                <strong>¥</strong>
-              </template>
-            </Numeral>
-          </template>
-        </el-table-column>
-        <el-table-column label="订金(/头)" width="120" >
-          <template #default="scope">
-            <Numeral :value="scope.row.previewMoney || 0" format="0,0.00">
-              <template #prefix>
-                <strong>¥</strong>
-              </template>
-            </Numeral>
-          </template>
-        </el-table-column>
-        <el-table-column prop="count" label="下单数量(头)" width="120" align="center" />
-        <el-table-column label="订单总额" min-width="130">
-          <template #default="scope">
-            <Numeral :value="scope.row.totalMoney || 0" format="0,0.00">
-              <template #prefix>
-                <strong>¥</strong>
-              </template>
-            </Numeral>
-          </template>
-        </el-table-column>
-        <el-table-column label="订金总额" min-width="130">
-          <template #default="scope">
-            <Numeral :value="scope.row.firstMoney || 0" format="0,0.00">
-              <template #prefix>
-                <strong>¥</strong>
-              </template>
-            </Numeral>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" min-width="130" fixed="right">
-          <template #default="scope">
-            <el-button  type="warning" size="small" v-if="orderDataList.status == '3' && !orderDataList.updateLogId" @click="InitiatePrice('发起改价')">发起改价</el-button>
-            <el-button  type="primary" size="small" v-if="orderDataList.status == '3' &&  orderDataList.updateLogId" @click="lookPrice('查看改价')">
-              <span v-if="orderDataList.cattleOrderUpdateLog.status == 1">改价待确认</span>
-              <span v-if="orderDataList.cattleOrderUpdateLog.status == 2">查看改价</span>
-            </el-button>
-            <el-button  type="success" size="small" v-if="orderDataList.status == '2' && orderDataList.contactCell" @click="confirmlookCow">确定已看牛</el-button>
-            <el-button  type="success" size="small" v-if="(orderDataList.status == '3' && !orderDataList.updateLogId) || (orderDataList.status == '3' && orderDataList.cattleOrderUpdateLog.status == 2) " @click="confirmPayLast" style="margin:1rem 0">确认支付尾款</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-
-    <Modal v-model="lookModal" @on-ok="confirmPrice">
-        <template #header>
-          <p style="text-align:center">
-              <span>{{ modalTitle}}</span>
-          </p>
-        </template>
-        <div v-if="modalTitle == '发起改价'">
-          <Row style="padding:1rem">
-              <Col span="11">
-                <div style="color:#409EFF;margin-bottom:0.6rem">原始订单信息</div>
-                <div>定金: ¥{{orderDataList.firstMoney}}</div>
-                <div>尾款: ¥{{orderDataList.lastMoney}}</div>
-                <div>总计: ¥{{orderDataList.totalMoney}}</div>
-              </Col>
-              <Col span="2">
-                <Divider type="vertical" style="height:6rem"/>
-              </Col>
-              <Col span="11">
-                <div style="color:#409EFF;margin-bottom:0.6rem">更改订单信息</div>
-                <div>定金: ¥{{orderDataList.firstMoney}}</div>
-                <div>尾款: ¥{{orderDataList.lastMoney}}</div>
-                <div>合同总款: <Input v-model="totalPrice" size="small" placeholder="请输入总牛款金额" style="width: 130px" /></div>
-              </Col>
-          </Row>
-          <Divider />
-          <div style="padding:1rem" >
-            备注信息:<Input v-model="updateComment" type="textarea" placeholder="请输入备注信息" />
-          </div>
-        </div>
-        <template #footer v-if="modalTitle == '发起改价'">
-          <div style="text-align:center;">
-            <Button  @click="lookModal = false" style="margin-right:4em;">取消操作</Button>
-            <Button type="primary" @click="confirmPrice">确定提交</Button>
-          </div>
-        </template>
-        <div v-if="modalTitle == '查看改价'">
-          <Row style="padding:1rem">
-              <Col span="11" style="text-align:center">
-                <div style="color:#409EFF;margin-bottom:0.6rem">原始订单信息</div>
-                <div>定金: ¥{{orderDataList.firstMoney}}</div>
-                <div>尾款: ¥{{orderDataList.cattleOrderUpdateLog.oldLastMoney}}</div>
-                <div>总计: ¥{{orderDataList.cattleOrderUpdateLog.oldTotalMoney}}</div>
-              </Col>
-              <Col span="2">
-                <Divider type="vertical" style="height:6rem"/>
-              </Col>
-              <Col span="11" style="text-align:center">
-                <div style="color:#409EFF;margin-bottom:0.6rem">更改订单信息</div>
-                <div>合同总款: ¥{{orderDataList.cattleOrderUpdateLog.totalMoney}}</div>
-                <div>定金: ¥{{orderDataList.firstMoney}}</div>
-                <div>尾款: ¥{{orderDataList.cattleOrderUpdateLog.lastMoney}}</div>
-              </Col>
-          </Row>
-          <Divider />
-          <div style="padding:1rem" >
-            备注信息:<span >{{orderDataList.cattleOrderUpdateLog.updateComment }}</span>
-          </div>
-        </div>
-        <template #footer v-if="modalTitle == '查看改价'">
-          <Button  type="primary" @click="lookModal = false">确定</Button>
-        </template>
-    </Modal>
-
-    <Modal v-model="auditRefundModal"  title="审核售后" width="25%">
-      <div v-if="auditNum == 3">
-        <Input v-model="auditRefuseReason" :border="false" placeholder="请填写您得审核拒绝理由" />
-      </div>
-      <div v-if="auditNum == 2">
-        您确定同意该笔退款申请吗?
-      </div>
-      <template #footer>
-        <Button  @click="auditRefundModal = false">取消操作</Button>
-        <Button  type="primary" @click="confirmSubAudit">确定提交</Button>
-      </template>
-    </Modal>
-  </div>
-</template>
-
-<script>
-import { Message,Modal,Spin } from 'view-ui-plus'
-import { defineComponent, reactive,onMounted,ref} from 'vue'
-import { ElMessage,ElMessageBox} from 'element-plus'
-import { useRouter } from 'vue-router';
-import {cow,order} from '@/request/api'
-import moment from 'moment'
-
-export default defineComponent({
-  components:{
-  },
-  setup() {
-    let orderDataList = ref({cattleOrderAddress:{},cattleOrderInvoice:{},cattleAfterSale:{}})
-    let lookModal = ref(false)
-    let modalTitle = ref('发起改价')
-    let updateComment = ref()
-    let totalPrice = ref()
-    let orderStatusList = ref([
-      {label:'待支付',val:1},
-      {label:'待看牛',val:2},
-      {label:'待付尾款',val:3},
-      {label:'待交割',val:4},
-      {label:'已完成',val:5},
-      {label:'申请售后',val:6},
-      {label:'已取消',val:7},
-    ])
-
-    const $router = useRouter();
-    // 查询订单详情
-    async function getCattleOrderInfo(id){
-      await cow.getCattleOrderInfo({orderNum:id}).then(res=>{
-        if(res.code == 101){
-          orderDataList.value = res.data
-        }else{
-          Message.warning({content: res.message || '操作失败'})
-        }
-      })
-    }
-
-    // 查看改价
-    function lookPrice(title){
-      modalTitle.value = title
-      lookModal.value = true
-    }
-
-    // 发起改价
-    function InitiatePrice(title){
-      modalTitle.value = title
-      lookModal.value = true
-    }
-
-    //确定
-    async function confirmPrice(){
-      const params={
-        orderNum:orderDataList.value.orderNum,
-        status:1,
-        updateComment:updateComment.value,
-        totalMoney:totalPrice.value,
-      } 
-      await cow.UpdatePrice(params).then(res=>{
-        if(res.code == 101){
-          lookModal.value = false
-          getCattleOrderInfo($router.currentRoute.value.query.id)
-          Message.success({content: res.message || '操作成功'})
-        }else{
-          Message.warning({content: res.message || '操作失败'})
-        }
-      })
-    }
-
-    // 订单状态回执
-    function payStateDisplay(val){
-      switch(val){
-        case 2:
-          return '待付款'
-        break;
-        case 3:
-          return '已付订金'
-        break;
-        case 5:
-          return '已退款'
-        break;
-      }
-    }
-
-    // 订单状态回执
-    function orderStateDisplay(val){
-      switch(val){
-        case 1:
-          return '待付订金'; break;
-        case 2:
-          return '待看牛'; break;
-        case 3:
-          return '待付尾款'; break;
-        case 4:
-          return '待交割'; break;
-        case 5:
-          return '已取消'; break;
-        case 6:
-          return '已完成'; break;
-        case 7:
-          return '申请售后'; break;
-        case 8:
-          return '已退款'; break;
-      }
-    }
-
-    // 确认已经看牛
-    function confirmlookCow(){
-      ElMessageBox.confirm(
-        '请确认:买家是否已完成看牛?',
-        '确定已看牛',
-        {
-          confirmButtonText: '是的,已看',
-          cancelButtonText: '还未看牛',
-          type: 'warning',
-          closeOnClickModal:false
-        }
-      )
-        .then(async() => {
-          const params ={
-            orderNum:orderDataList.value.orderNum,
-          }
-          await cow.confirmAppointCattle(params).then(res=>{
-            if(res.code == 101){
-              getCattleOrderInfo($router.currentRoute.value.query.id)
-              Message.success({content: res.message || '确认已看牛'})
-            }else{
-              Message.warning({content: res.message || '操作失败'})
-            }
-          })
-        })
-        .catch(() => {
-          Message.warning({content: '还未看牛'})
-        })
-    }
-
-    // 确认支付尾款
-    function confirmPayLast(){
-      ElMessageBox.confirm(
-        '请确认:买家是否已支付尾款?',
-        '确定支付尾款',
-        {
-          confirmButtonText: '确认',
-          cancelButtonText: '取消',
-          type: 'warning',
-          closeOnClickModal:false
-        }
-      ).then(async() => {
-          const params ={
-            orderNum:orderDataList.value.orderNum,
-          }
-          await cow.confirmLastPay(params).then(res=>{
-            if(res.code == 101){
-              getCattleOrderInfo($router.currentRoute.value.query.id)
-              Message.success({content: res.message || '确认成功'})
-            }else{
-              Message.warning({content: res.message || '确认失败'})
-            }
-          })
-        })
-    }
-    
-    let auditRefundModal = ref(false) //审核售后modal
-    let auditRefuseReason = ref('') //拒绝理由
-    let auditNum = ref('')
-    // 审核退款申请
-    function auditRefundM(val){
-      auditNum.value = val
-      auditRefundModal.value = true
-    }
-    // 确定提交审核
-    async function confirmSubAudit(){
-      if(auditNum.value == 3 && !auditRefuseReason.value){
-        Message.warning({content:'请填写拒绝的理由'})
-        return
-      }
-      let sendParams = {}
-      sendParams.id =  orderDataList.value.cattleAfterSale.id
-      sendParams.status = auditNum.value
-      sendParams.refuseReason = auditRefuseReason.value
-      await order.cattleAudit(sendParams).then(res=>{
-        if(res.code == 101){
-          auditRefundModal.value = false
-          Message.success({content: res.message || '操作成功'})
-          getCattleOrderInfo($router.currentRoute.value.query.id)  //获取订单详情
-        }else{
-          Message.warning({content: res.message || '操作失败'})
-        }
-      }).catch(e=>{
-        Message.warning({content: e.message || '确认失败'})
-      })
-    }
-
-    onMounted(async()=>{
-      getCattleOrderInfo($router.currentRoute.value.query.id)  //获取订单详情
-    })
-
-    
-    return {
-      orderDataList,lookModal,modalTitle,modalTitle,updateComment,totalPrice,orderStatusList,moment,auditRefundModal,auditNum,auditRefuseReason,
-      getCattleOrderInfo,InitiatePrice,lookPrice,confirmPrice,confirmlookCow,payStateDisplay,orderStateDisplay,confirmPayLast,auditRefundM,confirmSubAudit
-    }
-  },
-})
-</script>
-
-<style lang="scss" scoped>
-.orderDetail{
-  padding: 1em 2em;
-  .detail_order_num{padding: 1em .5em; background-color: #fff;}
-  .order_detail_box{
-    border-top: 3px solid #19be6b; background-color: #fff;
-    display: flex; flex-wrap:wrap;
-    .detail_buyer_box{
-      width: 33%; height: 250px; border-right: 1px dotted #ccc; padding: 1em 2em; margin:1em 0;
-      div{margin-top:10px;}
-    }
-    .detail_order_box{
-      width: 33%; height: 250px; border-right: 1px dotted #ccc; padding: 1em 2em;margin:1em 0;
-      div{margin-top:10px;}
-    }
-    .detail_pay_box{
-      width: 33%; height: 250px; padding: 1em 2em;margin:1em 0;
-      div{margin-top:10px;}
-    }
-    .detail_invoice_box{
-      width: 33%; height: 250px; padding: 1em 2em; border-right: 1px dotted #ccc; margin:1em 0;
-      div{margin-top:10px;}
-    }
-  }
-}
-</style>
-<style lang="scss">
-.orderDetail{
-
-}
-</style>

+ 0 - 228
src/views/orderManage/orderManageIndex.vue

@@ -1,228 +0,0 @@
-/**
-  // author:zhangb
-  // time:2022-12-01
-  // desc:订单管理
-*/
-<template>
-  <div class="orderManageIndex">
-    <!-- 筛选 -->
-    <Row :gutter="8">
-      <Col span="5">
-        <Input placeholder="请输入订单编号" v-model="filtInfoData.orderNum" style="width: 100%" clearable>
-          <template #suffix>
-            <Icon type="ios-search" />
-          </template>
-        </Input>
-      </Col>
-      <Col span="4">
-        <Input placeholder="请输入商品名称" v-model="filtInfoData.itemName" style="width: 100%" clearable></Input>
-      </Col>
-      <Col span="4">
-        <Select v-model="filtInfoData.status" placeholder="全部订单" style="width: 100%" @on-change="getAllOrderList">
-          <Option v-for="item in orderStatusList" :value="item.val" :key="item.val">{{ item.label }}</Option>
-        </Select>
-      </Col>
-      <Col span="5">
-        <DatePicker type="datetimerange" format="yyyy-MM-dd" placeholder="请选择订单时间范围" style="width:100%" @on-change="changeOrderTimeRage" />
-      </Col>
-      <Col span="3">
-        <Button type="primary" @click="getAllOrderList">确定搜索</Button>
-      </Col>
-    </Row>
-    <!-- 表格部分 -->
-    <el-table :data="orderDataList" border style="width: 100%; margin-top:20px;">
-      <el-table-column type="index" label="序号" width="55" align="center" fixed="left" />
-      <el-table-column prop="orderNum" label="订单编号" min-width="220" fixed="left" />
-      <el-table-column label="订单状态" width="100" align="center" >
-        <template #default="scope">
-          {{orderStatus(scope.row.status)}}
-        </template>
-      </el-table-column>
-      <el-table-column prop="itemName" label="商品名称" min-width="130" />
-      <el-table-column prop="pastureName" label="商品单价" width="120" align="center">
-        <template #default="scope">
-          <Numeral :value="scope.row.price || 0" format="0,0.00">
-            <template #prefix>
-                <strong>¥</strong>
-            </template>
-            <template #suffix>
-                <span>/头</span>
-            </template>
-          </Numeral>
-        </template>
-      </el-table-column>
-      <el-table-column label="商品订金" width="120" align="center">
-        <template #default="scope">
-          <Numeral :value="scope.row.firstMoney || 0" format="0,0.00">
-            <template #prefix>
-                <strong>¥</strong>
-            </template>
-            <template #suffix>
-                <span>/头</span>
-            </template>
-          </Numeral>
-        </template>
-      </el-table-column>
-      <el-table-column prop="payStatus" label="下单数量(头)" width="110" align="center" >
-        <template #default="scope">
-          {{scope.row.count}} 
-        </template>
-      </el-table-column>
-      <!-- <el-table-column prop="payStatus" label="支付状态" width="100" align="center" >
-        <template #default="scope">
-          <el-tag :type="scope.row.payStatus == 1?'success':'warning'">{{ payOrderState(scope.row.payStatus) }}</el-tag>
-        </template>
-      </el-table-column> -->
-      <el-table-column prop="sum" label="订单总额" width="120" align="center">
-        <template #default="scope">
-          <Numeral :value="scope.row.totalMoney" format="0,0.00">
-            <template #prefix>
-                <strong>¥</strong>
-            </template>
-          </Numeral>
-        </template>
-      </el-table-column>
-      <el-table-column prop="price2" label="订金总额" width="150" align="center" >
-        <template #default="scope">
-          <Numeral :value="scope.row.firstMoney * scope.row.count" format="0,0.00">
-            <template #prefix>
-                <strong>¥</strong>
-            </template>
-          </Numeral>
-          <span v-if="scope.row.payStatus == 3" style="background-color:#19be6b;color:#fff; font-size:12px;padding:3px 5px;border-radius:2px;margin-left:5px;margin-top:-2px;">已付</span>
-          <span v-if="scope.row.payStatus == 2" style="background-color:#ff9900;color:#fff; font-size:12px;padding:3px 5px;border-radius:2px;margin-left:5px;margin-top:-2px;">待付</span>
-          <span v-if="scope.row.payStatus == 5" style="background-color:#ed4014;color:#fff; font-size:12px;padding:3px 5px;border-radius:2px;margin-left:5px;margin-top:-2px;">已退款</span>
-        </template>
-      </el-table-column>
-      <el-table-column prop="price3" label="待付尾款" width="100" align="center" >
-        <template #default="scope">
-          {{ scope.row.waitPayLast || '—' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" min-width="220"  fixed="right">
-        <template  #default="scope">
-          <el-button  size="small" @click="$router.push('orderDetail?id=' + scope.row.orderNum)">订单详情</el-button>&nbsp;
-          <el-button  size="small" type="primary" v-if="scope.row.status == '2' && scope.row.contactCell" @click="lookCow(scope.row,'预约记录')">查看预约</el-button>
-          <!-- <el-button  size="small" type="success" v-if="scope.row.status == '3'">联系买家</el-button> -->
-          <el-button  size="small" type="warning" v-if="scope.row.status == '7'" @click="$router.push('orderDetail?id=' + scope.row.orderNum)">申请售后</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <!-- 分页 -->
-    <div class="page_style">
-      <Page :total="orderTotalNum" :model-value="currentPage" :page-size="filtInfoData.limit" show-elevator show-total @on-change="changePage" />
-    </div>
-    <!-- 查看预约 -->
-    <Modal v-model="lookModal" width="25%">
-      <template #header>
-        <p style="text-align:center">
-            <span>{{ modalTitle}}</span>
-        </p>
-      </template>
-      <div v-if="modalTitle == '预约记录'" style="padding:1rem 5rem;">
-        <p style="margin-bottom:0.5rem">联系人: {{cattleMsg.contactName || '无'}}</p>
-        <p>联系电话: {{cattleMsg.contactCell || '无'}}</p>
-      </div>
-      <template #footer >
-        <div style="text-align:center;">
-          <Button @click="lookModal=false">关闭页面</Button>
-        </div>
-      </template>
-    </Modal>
-  </div>
-</template>
-
-<script>
-import { defineComponent, onMounted, ref ,reactive} from 'vue'
-import {cow} from '@/request/api'
-import {orderStatus,payOrderState} from '@/utils/system/filters'
-import { ElMessage } from 'element-plus'
-
-export default defineComponent({
-  components:{
-    
-  },
-  setup() {
-    let filtInfoData = ref({
-      limit:20,
-      offset:0,
-      orderNum:'',
-      status:'',
-      startDate:'',
-      endDate:'',
-      itemName:'',
-    })
-
-    let orderStatusList = ref([
-      {label:'全部订单',val:''},
-      {label:'待支付',val:'1'},
-      {label:'待看牛',val:'2'},
-      {label:'待付尾款',val:'3'},
-      {label:'待交割',val:'4'},
-      {label:'已取消',val:'5'},
-      {label:'已完成',val:'6'},
-      {label:'申请售后',val:'7'},
-      {label:'已退款',val:'8'},
-    ])
-
-    const lookModal = ref(false)
-    let modalTitle = ref('预约记录')
-    let cattleMsg = ref({})  
-
-    // 改变订单的时间范围
-    function changeOrderTimeRage(val){
-      console.log('选择的时间',val);
-      filtInfoData.value.startDate = val[0]
-      filtInfoData.value.endDate = val[1]
-      getAllOrderList()
-    }
-
-    let orderDataList = ref([])
-    let orderTotalNum = ref(0)
-    // 获取全部订单
-    async function getAllOrderList(){
-      await cow.getCattleOrderPage(filtInfoData.value).then(res=>{
-        if(res.code === 101){
-          orderDataList.value = res.data
-          orderTotalNum.value = res.total
-        }
-      })
-    }
-  
-    let currentPage = ref(1)
-    //更改页码
-    function changePage (page) {
-      filtInfoData.value.offset = (page -1) *  filtInfoData.value.limit  //更新偏移量
-      currentPage.val = page  //切换当前页码
-      getAllOrderList()
-    }
-
-    // 查看预约
-    function lookCow(row,title){
-      modalTitle.value = title
-      lookModal.value = true
-      cattleMsg.value = row
-    }
-
-    onMounted(()=>{
-      getAllOrderList() //获取全部订单
-    })
-
-    return {
-      orderDataList,orderTotalNum,orderStatus,payOrderState,
-      filtInfoData,orderStatusList,currentPage,lookModal,modalTitle,cattleMsg,
-      changePage,changeOrderTimeRage,lookCow,getAllOrderList,
-    }
-  },
-})
-</script>
-
-<style lang="scss" scoped>
-.orderManageIndex{
-  padding: 1em;
-  .page_style{
-    text-align: right; margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 385
src/views/orderManage/sellOrder.vue

@@ -1,385 +0,0 @@
-<template>
-  <div class="contentList">
-    <Input v-model="typesearchFilter.name" placeholder="请输入标题名称" style="width: 480px"></Input>
-
-    <el-button type="primary" @click="changePage(1)">查询</el-button>
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="发布时间" width="180">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人" width="100" prop="contactName" align="center"></el-table-column>
-      <el-table-column label="联系电话" width="120" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="信息标题" prop="name" width="200"></el-table-column>
-      <el-table-column label="状态" align="center" width="100">
-        <template #default="scope">
-          <Tag color="orange" v-if="scope.row.status == 4">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="green" v-if="scope.row.status == 3">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="red" v-if="scope.row.status == 2">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="blue" v-if="scope.row.status == 1">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="skyblue" v-if="scope.row.status == 5">{{ publishStatus(scope.row.status) }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只分类" width="200">
-        <template #default="scope">
-          {{ scope.row.classifyOneName }}/{{ scope.row.classifyTwoName }}/{{ scope.row.classifyThreeName }}
-        </template>
-      </el-table-column>
-      <el-table-column prop="price" label="意向采购单价" align="center" width="130">
-        <template #default="scope">
-          <b style="color: red">{{ scope.row.price }}</b>
-        </template>
-      </el-table-column>
-      <el-table-column label="采购数量" prop="count" align="center" min-width="100">
-        <template #default="scope">
-          {{ scope.row.count }}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只重量" prop="weight" min-width="100">
-        <!-- <template #default="scope">
-          <Tag color="blue">{{ scope.row.weight }}</Tag>
-        </template> -->
-      </el-table-column>
-      <el-table-column label="牛只膘情">
-        <template #default="scope">
-          <Tag color="#B62D4A" v-for="item in scope.row.fatInfo.split('#')">{{ item }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="采购地区">
-        <template #default="scope">
-          <Icon type="md-pin" color="#2db7f5" />
-          <span style="color: #999; font-size: 12px">{{ scope.row.addressInfo }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="发布天数" align="center" width="100" prop="validDays"></el-table-column>
-
-      <el-table-column label="操作" width="220" fixed="right">
-        <template #default="scope">
-          <!--按钮-->
-          <!-- <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button> -->
-          <el-button :type="primary" size="small" @click="showDetail(scope.row.id)" style="margin-right: 5px"
-            >查看订单</el-button
-          >
-          <!-- <el-button
-            :type="primary"
-            size="small"
-            @click="router.push('/orderManage/contractManage')"
-            style="margin-right: 5px"
-            >服务合同</el-button
-          > -->
-          <el-button
-            :type="primary"
-            size="small"
-            @click="router.push({ path: '/userPublishSellManage/publishDetail', query: { id: scope.row.id } })"
-            >查看买牛消息</el-button
-          >
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-
-    <el-dialog v-model="dialogTableVisible" title="报价列表" width="850px">
-      <el-table
-        border
-        v-loading="tableLoading"
-        :data="tableData"
-        @expand-change="checkSubOrder"
-        :row-key="getRowKeys"
-        :expand-row-keys="expands"
-      >
-        <el-table-column type="expand" label="子订单">
-          <template #default="props">
-            <el-table v-loading="tableLoading" :data="subOrdertableData" border>
-              <el-table-column label="发运头数" prop="finalCount">
-                <template #default="scope">
-                  {{ scope.row.finalCount && scope.row.status != 6 ? scope.row.finalCount : scope.row.orderCount }}
-                </template>
-              </el-table-column>
-              <el-table-column label="牛只总重" prop="finalWeight">
-                <template #default="scope">
-                  {{ scope.row.finalWeight && scope.row.status != 6 ? scope.row.finalWeight : scope.row.orderWeight }}
-                </template>
-              </el-table-column>
-              <el-table-column label="总计金额(元)" prop="city">
-                <template #default="scope">
-                  <span style="color: #333333" v-if="scope.row.finalWeight && scope.row.status != 6">{{
-                    (scope.row.finalWeight * scope.row.orderPrice).toFixed(2)
-                  }}</span>
-                  <span style="color: #333333" v-else>{{
-                    (scope.row.orderWeight * scope.row.orderPrice).toFixed(2)
-                  }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column label="发运榜单" prop="address">
-                <template #default="scope">
-                  <img
-                    style="width: 80px; height: 80px"
-                    @click="
-                      previewImage({
-                        urlList: [
-                          scope.row.updateWeightBill && scope.row.status != 6
-                            ? scope.row.updateWeightBill
-                            : scope.row.weightBill,
-                        ],
-                      })
-                    "
-                    :src="
-                      scope.row.updateWeightBill && scope.row.status != 6
-                        ? scope.row.updateWeightBill
-                        : scope.row.weightBill
-                    "
-                  />
-                </template>
-              </el-table-column>
-              <el-table-column label="状态" prop="zip">
-                <template #default="scope">
-                  {{ subOrderStatus(scope.row.status) }}
-                </template>
-              </el-table-column>
-            </el-table>
-          </template>
-        </el-table-column>
-        <el-table-column property="contactName" label="中标人" width="150" />
-        <el-table-column property="contactPhone" label="联系方式" width="150" />
-        <el-table-column property="orderPrice" label="成交金额(元/公斤)" />
-        <el-table-column property="orderCount" label="成交数量(头)" />
-        <el-table-column property="updateTime" label="中标时间">
-          <template #default="scope">
-            {{ moment(scope.row.updateTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="status" label="状态">
-          <template #default="scope">
-            {{ orderStatus(scope.row.status) }}
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" fixed="right" width="240">
-          <template #default="scope">
-            <el-button
-              type="primary"
-              v-if="scope.row.buySaleContractId"
-              size="small"
-              @click="downloadFile(scope.row)"
-              style="margin-right: 5px"
-              >下载买卖合同</el-button
-            >
-
-            <el-button
-              type="primary"
-              v-if="scope.row.shopContract"
-              size="small"
-              @click="openUrl(scope.row.shopContract)"
-              >下载服务合同</el-button
-            >
-            <el-button type="primary" v-else size="small" @click="uploadEcontract(scope.row)">上传服务合同</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <el-dialog v-model="contractShow" append-to-body title="上传服务费合同" width="500">
-        <el-upload
-          :action="uploadUrl"
-          :on-success="onSuccess"
-          ref="upload"
-          :headers="{ 'X-AIYANGNIU-SIGNATURE': token }"
-          :on-exceed="handleExceed"
-          v-model:file-list="fileList"
-          :on-preview="handlePreview"
-          :limit="1"
-          drag
-        >
-          <div class="el-upload__text">将文件拖拽至此或者 <em>点击上传</em></div>
-        </el-upload>
-        <template #footer>
-          <div class="dialog-footer">
-            <el-button @click="contractShow = false">取消</el-button>
-            <el-button type="primary" @click="submitFile"> 确认 </el-button>
-          </div>
-        </template>
-      </el-dialog>
-    </el-dialog>
-    <el-dialog v-model="videoShow" title="视频播放">
-      <div style="text-align: center">
-        <video :src="videoUrl" style="max-width: 780px" controls></video>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import { publishStatus, orderStatus, subOrderStatus } from '@/utils/system/filters'
-import moment from 'moment'
-import previewImage from '../../components/imgPreview'
-import { cow, econtract } from '@/request/api'
-let typesearchFilter = reactive({ limit: 10, offset: 0, type: 1, hasIntent: 1 })
-import { useRouter } from 'vue-router'
-const router = useRouter()
-
-import api from '@/request/apiConfig' //真实接口配置
-import { ElMessage } from 'element-plus'
-const primary = ref('primary')
-let dealId = ''
-const token = localStorage.aynUserToken
-const uploadUrl = api.apiManager + '/manager/images/upload'
-const fileList = ref([])
-const upload = ref()
-const shopFeeContractUrl = ref('')
-const contractShow = ref(false)
-
-const onSuccess = (res, file) => {
-  console.log(res)
-  fileList.value = []
-  fileList.value.push(file)
-  shopFeeContractUrl.value = res.data
-}
-const handleExceed = (files, fileList) => {
-  upload.value.clearFiles()
-  const file = files[0]
-  file.uid = genFileId()
-  upload.value.handleStart(file)
-  upload.value.submit()
-}
-
-const currentRow = ref({})
-function uploadEcontract(row) {
-  currentRow.value = row
-  contractShow.value = true
-}
-
-const submitFile = () => {
-  econtract
-    .uploadSignedShopFeeContract({
-      orderNum: currentRow.value.orderNum,
-      shopContract: shopFeeContractUrl.value,
-    })
-    .then(res => {
-      console.log(res)
-      if (res.code == 101) {
-        contractShow.value = false
-        ElMessage({
-          message: res.message || '上传成功!',
-          type: 'success',
-        })
-        showDetail(dealId)
-      } else {
-        ElMessage({
-          message: res.message || '上传失败!',
-          type: 'warning',
-        })
-      }
-    })
-}
-function downloadFile(row) {
-  econtract
-    .getContractDownloadUrl({ buySaleContractId: row.buySaleContractId })
-    .then(res => {
-      if (res.code == 101) {
-        window.open(res.data)
-      } else {
-        ElMessage({
-          message: res.message || '下载失败!',
-          type: 'warning',
-        })
-      }
-    })
-    .catch(err => {
-      ElMessage({
-        message: err.message || '下载失败!',
-        type: 'error',
-      })
-    })
-}
-
-function openUrl(url) {
-  window.open(url)
-}
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.getCattleDealPageByAdminAndType(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-const tableData = ref([])
-let dialogTableVisible = ref(false)
-let tableLoading = ref(false)
-async function showDetail(id) {
-  if (id) {
-    dealId = id
-  }
-  tableLoading.value = true
-  dialogTableVisible.value = true
-  await cow.orderList({ dealId: id, limit: 1000 }).then(res => {
-    tableData.value = res.data
-  })
-  tableLoading.value = false
-}
-
-const videoUrl = ref('')
-const videoShow = ref(false)
-function showVideo(url) {
-  videoUrl.value = url
-  videoShow.value = true
-}
-
-const subOrdertableData = ref([])
-const expands = ref([])
-let getRowKeys = row => {
-  //row是当前行的数据
-  //给每行绑定唯一的标识
-  return row.id
-}
-
-async function checkSubOrder(row, expandedRows) {
-  if (expandedRows.length > 0) {
-    tableLoading.value = true
-    expands.value = [] //先干掉之前展开的行
-    if (row) {
-      expands.value.push(row.id) //push新的行 (原理有点类似防抖)
-    }
-    await cow.splitOrderList({ id: row.id, limit: 1000 }).then(res => {
-      subOrdertableData.value = res.data
-    })
-    tableLoading.value = false
-  } else {
-    expands.value = []
-  }
-}
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 68
src/views/protocol/addProtocol.vue

@@ -1,68 +0,0 @@
-<template>
-  <div class="protocol">
-    <el-form :model="form" :rules="rules" ref="ruleFormRef">
-      <el-form-item label="协议名称" prop="agreeUnlockName">
-        <el-input v-model="form.agreeUnlockName" style="width: 600px" placeholder="请输入协议名称" />
-      </el-form-item>
-      <!-- <el-form-item label="协议介绍" prop="explain">
-        <el-input type="textarea" v-model="form.explain" style="width: 600px" placeholder="请输入协议介绍" />
-      </el-form-item> -->
-      <el-form-item label="协议内容" prop="agreeUnlockInfo">
-        <BasicEditor ref="editotTool"></BasicEditor>
-      </el-form-item>
-      <el-form-item>
-        <div style="width: 80%; text-align: center">
-          <el-button style="margin-right: 3rem" @click="$router.go(-1)">返回</el-button>
-          <el-button type="primary" @click="submitForm(ruleFormRef)" :loading="loading"> 更新协议 </el-button>
-        </div>
-      </el-form-item>
-    </el-form>
-  </div>
-</template>
-
-<script setup>
-import { Message } from 'view-ui-plus'
-import { ref, reactive } from 'vue'
-import BasicEditor from '@/components/wangEditor/BasicEditor.vue'
-import { cow } from '@/request/api'
-import { useRouter } from 'vue-router'
-const router = useRouter()
-
-const editotTool = ref()
-const ruleFormRef = ref()
-const form = ref({})
-const rules = reactive({
-  agreeUnlockName: [{ required: true, message: '请输入协议名称', trigger: 'blur' }],
-  // explain: [{ required: true, message: '请输入协议介绍', trigger: 'blur' }],
-  agreeUnlockInfo: [{ required: true, message: '请输入协议内容', trigger: 'blur' }],
-})
-const loading = ref(false)
-
-const submitForm = async formEl => {
-  if (!formEl) return
-  form.value.agreeUnlockInfo = editotTool.value.valueHtml
-  await formEl.validate((valid, fields) => {
-    console.log(editotTool.value.valueHtml)
-    if (valid) {
-      loading.value = true
-      cow
-        .addProtocol(form.value)
-        .then(res => {
-          loading.value = false
-          Message.success(res.message)
-        })
-        .catch(err => {
-          loading.value = false
-        })
-    } else {
-      console.log('error submit!', fields)
-    }
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.protocol {
-  padding: 20px;
-}
-</style>

+ 0 - 127
src/views/protocol/index.vue

@@ -1,127 +0,0 @@
-<template>
-  <div class="protocol" v-loading="loading">
-    <el-form :model="form" :rules="rules" ref="ruleFormRef">
-      <el-form-item label="协议名称" prop="agreeUnlockName">
-        <el-input v-model="form.agreeUnlockName" style="width: 600px" placeholder="请输入协议名称" />
-      </el-form-item>
-      <!-- <el-form-item label="协议介绍" prop="explain">
-        <el-input type="textarea" v-model="form.explain" style="width: 600px" placeholder="请输入协议介绍" />
-      </el-form-item> -->
-      <el-form-item label="协议内容" prop="agreeUnlockInfo">
-        <BasicEditor ref="editotTool"></BasicEditor>
-      </el-form-item>
-      <el-form-item label="服务费合同模板上传" prop="shopFeeContractUrl">
-        <el-upload
-        style="width: 50%;"
-          :action="uploadUrl"
-          :on-success="onSuccess"
-          ref="upload"
-          :headers="{ 'X-AIYANGNIU-SIGNATURE': token }"
-          :on-exceed="handleExceed"
-          v-model:file-list="fileList"
-          :on-preview="handlePreview"
-          :limit="1"
-        >
-          <el-button type="primary">点击上传</el-button></el-upload
-        >
-      </el-form-item>
-      <el-form-item>
-        <div style="width: 80%; text-align: center">
-          <!-- <el-button style="margin-right: 3rem" @click="$router.go(-1)">返回</el-button> -->
-          <el-button type="primary" @click="submitForm(ruleFormRef)" :loading="loading"> 更新协议 </el-button>
-        </div>
-      </el-form-item>
-    </el-form>
-  </div>
-</template>
-
-<script setup>
-import { Message } from 'view-ui-plus'
-import { ref, reactive, onMounted } from 'vue'
-import BasicEditor from '@/components/wangEditor/BasicEditor.vue'
-import { cow } from '@/request/api'
-import { useRouter } from 'vue-router'
-import { genFileId } from 'element-plus'
-import api from '@/request/apiConfig' //真实接口配置
-const router = useRouter()
-const token = localStorage.aynUserToken
-const uploadUrl = api.apiManager + '/manager/images/upload'
-const fileList = ref([])
-
-const onSuccess = (res, file) => {
-  console.log(res)
-  fileList.value = []
-  fileList.value.push(file)
-  form.value.shopFeeContractUrl = res.data
-}
-const upload = ref()
-const handleExceed = (files, fileList) => {
-  upload.value.clearFiles()
-  const file = files[0]
-  file.uid = genFileId()
-  upload.value.handleStart(file)
-  upload.value.submit()
-}
-const handlePreview = (file) => {
-  console.log(file.url)
-  window.open(file.url)
-}
-const loading = ref(false)
-const editotTool = ref()
-const ruleFormRef = ref()
-const form = ref({})
-
-const getProtocol = async () => {
-  loading.value = true
-  await cow.getProtocol().then(res => {
-    if (res.code == 101 && res.data) {
-      form.value = res.data
-      editotTool.value.valueHtml = res.data.agreeUnlockInfo
-      fileList.value.push({
-        name: res.data.shopFeeContractUrl,
-        url: res.data.shopFeeContractUrl,
-      })
-    }
-  })
-  loading.value = false
-}
-
-onMounted(() => {
-  getProtocol()
-})
-
-const rules = reactive({
-  agreeUnlockName: [{ required: true, message: '请输入协议名称', trigger: 'blur' }],
-  // explain: [{ required: true, message: '请输入协议介绍', trigger: 'blur' }],
-  agreeUnlockInfo: [{ required: true, message: '请输入协议内容', trigger: 'blur' }],
-})
-
-const submitForm = async formEl => {
-  if (!formEl) return
-  form.value.agreeUnlockInfo = editotTool.value.valueHtml
-  await formEl.validate((valid, fields) => {
-    console.log(editotTool.value.valueHtml)
-    if (valid) {
-      loading.value = true
-      cow
-        .addProtocol(form.value)
-        .then(res => {
-          loading.value = false
-          Message.success('更新成功')
-          getProtocol()
-        })
-        .catch(err => {
-          loading.value = false
-        })
-    } else {
-      console.log('error submit!', fields)
-    }
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.protocol {
-  padding: 20px;
-}
-</style>

+ 0 - 161
src/views/quoteManage/buyQuote.vue

@@ -1,161 +0,0 @@
-<template>
-  <div class="contentList">
-    <Input v-model="typesearchFilter.name" placeholder="请输入标题名称" style="width: 480px"></Input>
-
-    <el-button type="primary" @click="changePage(1)">查询</el-button>
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="发布时间" width="160" align="center">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人" width="100" prop="contactName" align="center"></el-table-column>
-      <el-table-column label="联系电话" width="120" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="信息标题" prop="name" width="200"></el-table-column>
-      <el-table-column label="状态" align="center" width="100">
-        <template #default="scope">
-          <Tag color="orange" v-if="scope.row.status == 4">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="green" v-if="scope.row.status == 3">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="red" v-if="scope.row.status == 2">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="blue" v-if="scope.row.status == 1">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="skyblue" v-if="scope.row.status == 5">{{ publishStatus(scope.row.status) }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只分类" width="200">
-        <template #default="scope">
-          {{ scope.row.classifyOneName }}/{{ scope.row.classifyTwoName }}/{{ scope.row.classifyThreeName }}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只规格重量" prop="weight" min-width="120">
-        <template #default="scope">
-          <Tag color="blue">{{ scope.row.weight }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column prop="buyPrice" label="意向价格" align="center" min-width="120">
-        <template #default="scope">
-          <b style="color: red">{{ scope.row.price }}</b>
-        </template>
-      </el-table-column>
-      <el-table-column label="销售数量" min-width="120" align="center">
-        <template #default="scope">
-          {{ scope.row.count }}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只图片" align="center" width="120">
-        <template #default="scope">
-          <img :src="scope.row.imageUrl" style="width: 100%" />
-        </template>
-      </el-table-column>
-      <el-table-column label="发布天数" align="center" width="100" prop="validDays"></el-table-column>
-      <el-table-column label="操作" fixed="right" width="120">
-        <template #default="scope">
-          <!--按钮-->
-          <!-- <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button> -->
-          <el-button type="primary" @click="showDetail(scope.row.id)">查看报价</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-
-    <el-dialog v-model="dialogTableVisible" v-loading="tableLoading" title="报价列表" width="90%">
-      <el-table :data="tableData" border>
-        <el-table-column property="contactName" label="报价人" width="150" />
-        <el-table-column property="contactPhone" label="联系方式" width="150" />
-        <el-table-column property="round" label="报价轮数" />
-        <el-table-column property="quotePrice" label="报价金额(元/公斤)" />
-        <el-table-column property="quoteCount" label="报价数量(头)" />
-        <el-table-column property="addTime" label="报价时间">
-          <template #default="scope">
-            {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="quotePriceRound2" label="二轮报价金额(元/公斤)">
-          <template #default="scope">
-            {{ scope.row.quotePriceRound2 || '无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="quoteCountRound2" label="二轮报价数量(头)">
-          <template #default="scope">
-            {{ scope.row.quoteCountRound2 || '无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="addTimeRound2" label="二轮报价时间">
-          <template #default="scope">
-            {{ scope.row.addTimeRound2 ? moment(scope.row.addTimeRound2).format('yyyy-MM-DD hh:mm:ss') : '无' }}
-          </template>
-        </el-table-column>
-
-        <el-table-column property="validTime" label="报价有效期(天)" />
-        <el-table-column property="status" label="状态">
-          <template #default="scope">
-            {{ quoteStatus(scope.row.status) }}
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import { Modal } from 'view-ui-plus'
-import { publishStatus, quoteStatus } from '@/utils/system/filters'
-import moment from 'moment'
-import { cow } from '@/request/api'
-let typesearchFilter = reactive({ limit: 10, offset: 0, type: 2, hasQuote: 1 })
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.getCattleDealPageByAdminAndType(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-const tableData = ref([])
-let dialogTableVisible = ref(false)
-let tableLoading = ref(false)
-async function showDetail(id) {
-  tableLoading.value = true
-  dialogTableVisible.value = true
-  await cow.quoteList({ cattleDealId: id, limit: 1000 }).then(res => {
-    tableData.value = res.data
-  })
-  tableLoading.value = false
-}
-
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 206
src/views/quoteManage/sellQuote.vue

@@ -1,206 +0,0 @@
-<template>
-  <div class="contentList">
-    <Input v-model="typesearchFilter.name" placeholder="请输入标题名称" style="width: 480px"></Input>
-
-    <el-button type="primary" @click="changePage(1)">查询</el-button>
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="发布时间" width="180">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="联系人" width="100" prop="contactName" align="center"></el-table-column>
-      <el-table-column label="联系电话" width="120" prop="contactCell" align="center"></el-table-column>
-      <el-table-column label="信息标题" prop="name" width="200"></el-table-column>
-      <el-table-column label="状态" align="center" width="100">
-        <template #default="scope">
-          <Tag color="orange" v-if="scope.row.status == 4">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="green" v-if="scope.row.status == 3">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="red" v-if="scope.row.status == 2">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="blue" v-if="scope.row.status == 1">{{ publishStatus(scope.row.status) }}</Tag>
-          <Tag color="skyblue" v-if="scope.row.status == 5">{{ publishStatus(scope.row.status) }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只分类" width="200">
-        <template #default="scope">
-          {{ scope.row.classifyOneName }}/{{ scope.row.classifyTwoName }}/{{ scope.row.classifyThreeName }}
-        </template>
-      </el-table-column>
-      <el-table-column prop="price" label="意向采购单价" align="center" width="130">
-        <template #default="scope">
-          <b style="color: red">{{ scope.row.price }}</b>
-        </template>
-      </el-table-column>
-      <el-table-column label="采购数量" prop="count" align="center" min-width="100">
-        <template #default="scope">
-          {{ scope.row.count }}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只重量" prop="weight" min-width="100">
-        <!-- <template #default="scope">
-          <Tag color="blue">{{ scope.row.weight }}</Tag>
-        </template> -->
-      </el-table-column>
-      <el-table-column label="牛只膘情">
-        <template #default="scope">
-          <Tag color="#B62D4A" v-for="item in scope.row.fatInfo.split('#')">{{ item }}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="采购地区">
-        <template #default="scope">
-          <Icon type="md-pin" color="#2db7f5" />
-          <span style="color: #999; font-size: 12px">{{ scope.row.addressInfo }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="发布天数" align="center" width="100" prop="validDays"></el-table-column>
-
-      <el-table-column label="操作" width="120" fixed="right">
-        <template #default="scope">
-          <!--按钮-->
-          <!-- <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button> -->
-          <el-button type="primary" @click="showDetail(scope.row.id)">查看报价</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-
-    <el-dialog v-model="dialogTableVisible" v-loading="tableLoading" title="报价列表" width="90%">
-      <el-table border :data="tableData">
-        <el-table-column property="contactName" label="报价人" width="150" />
-        <el-table-column property="contactPhone" label="联系方式" width="150" />
-        <el-table-column property="validTime" label="报价有效期(天)" />
-        <el-table-column property="round" label="报价轮数" />
-        <el-table-column property="quotePrice" label="报价金额(元/公斤)" />
-        <el-table-column property="quoteCount" label="报价数量(头)" />
-        <el-table-column property="addTime" label="报价时间">
-          <template #default="scope">
-            {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="quotePriceRound2" label="二轮报价金额(元/公斤)">
-          <template #default="scope">
-            {{ scope.row.quotePriceRound2 || '无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="quoteCountRound2" label="二轮报价数量(头)">
-          <template #default="scope">
-            {{ scope.row.quoteCountRound2 || '无' }}
-          </template>
-        </el-table-column>
-        <el-table-column property="addTimeRound2" label="二轮报价时间">
-          <template #default="scope">
-            {{ scope.row.addTimeRound2 ? moment(scope.row.addTimeRound2).format('yyyy-MM-DD hh:mm:ss') : '无' }}
-          </template>
-        </el-table-column>
-        <el-table-column label="牛只图片" align="center" prop="imgUrl">
-          <template #default="scope">
-            <div>
-              <img
-                @click="previewImage({ urlList: scope.row.imgUrl.split('#'), 'initial-index': index })"
-                style="max-width: 80px"
-                v-for="(img, index) in scope.row.imgUrl.split('#')"
-                :src="img"
-                alt=""
-              />
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="牛只视频" align="center" prop="validTime">
-          <template #default="scope">
-            <div>
-              <video
-                style="max-width: 80px"
-                v-for="(videoitem, index) in scope.row.videoUrl.split('#')"
-                @click="showVideo(videoitem)"
-                :src="videoitem"
-                alt=""
-              />
-            </div>
-          </template>
-        </el-table-column>
-
-        <el-table-column property="status" label="状态">
-          <template #default="scope">
-            {{ quoteStatus(scope.row.status) }}
-          </template>
-        </el-table-column>
-      </el-table>
-    </el-dialog>
-    <el-dialog v-model="videoShow" title="视频播放">
-      <div style="text-align: center">
-        <video :src="videoUrl" style="max-width: 780px" controls></video>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import { Modal } from 'view-ui-plus'
-import { publishStatus, quoteStatus } from '@/utils/system/filters'
-import moment from 'moment'
-import previewImage from '../../components/imgPreview'
-import { cow } from '@/request/api'
-let typesearchFilter = reactive({ limit: 10, offset: 0, type: 1, hasQuote: 1 })
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.getCattleDealPageByAdminAndType(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-const tableData = ref([])
-let dialogTableVisible = ref(false)
-let tableLoading = ref(false)
-async function showDetail(id) {
-  tableLoading.value = true
-  dialogTableVisible.value = true
-  await cow.quoteList({ cattleDealId: id, limit: 1000 }).then(res => {
-    tableData.value = res.data
-  })
-  tableLoading.value = false
-}
-
-const videoUrl = ref('')
-const videoShow = ref(false)
-function showVideo(url) {
-  videoUrl.value = url
-  videoShow.value = true
-}
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 166
src/views/quoteManage/sellQuoteAudit.vue

@@ -1,166 +0,0 @@
-<template>
-  <div class="contentList">
-    <Input v-model="typesearchFilter.name" placeholder="请输入标题名称" style="width: 480px"></Input>
-
-    <el-button type="primary" @click="changePage(1)">查询</el-button>
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="消息名称" prop="cattleDeal.name"> </el-table-column>
-      <el-table-column label="发布者" align="center" prop="cattleDeal.contactName"> </el-table-column>
-      <el-table-column label="报价人" align="center" prop="contactName"> </el-table-column>
-      <el-table-column label="报价人联系方式" align="center" prop="contactPhone"> </el-table-column>
-      <el-table-column label="报价金额" align="center" prop="quotePrice"> </el-table-column>
-      <el-table-column label="报价数量(头)" align="center" prop="quoteCount"> </el-table-column>
-      <el-table-column label="报价时间" align="center" prop="addTime">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="报价有效期(天)" align="center" prop="validTime"> </el-table-column>
-      <el-table-column label="牛只图片" align="center" prop="imgUrl">
-        <template #default="scope">
-          <div>
-            <img
-              @click="previewImage({ urlList: scope.row.imgUrl.split('#'), 'initial-index': index })"
-              style="max-width: 80px"
-              v-for="(img, index) in scope.row.imgUrl.split('#')"
-              :src="img"
-              alt=""
-            />
-          </div>
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只视频" align="center" prop="validTime">
-        <template #default="scope">
-          <div>
-            <video
-              style="max-width: 80px"
-              v-for="(videoitem, index) in scope.row.videoUrl.split('#')"
-              @click="showVideo(videoitem)"
-              :src="videoitem"
-              alt=""
-            />
-          </div>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" width="200" align="center" fixed="right">
-        <template #default="scope">
-          <!--按钮-->
-          <!-- <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button> -->
-          <el-button size="small" @click="audit(scope.row, 6)" type="danger">审核拒绝</el-button>
-          <el-button size="small" @click="audit(scope.row, 0)" type="primary">审核通过</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-
-    <el-dialog v-model="videoShow" title="视频播放">
-      <div style="text-align: center">
-        <video :src="videoUrl" style="max-width: 780px" controls></video>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup>
-import previewImage from '../../components/imgPreview'
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import { Modal } from 'view-ui-plus'
-import moment from 'moment'
-import { cow } from '@/request/api'
-let typesearchFilter = reactive({ limit: 10, offset: 0 })
-import { ElMessage } from 'element-plus'
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.querySaleQuoteWaitAuditList(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-async function audit(row, type) {
-  loading.value = true
-  await cow.saleQuoteAudit({ quoteId: row.id, status: type }).then(res => {
-    ElMessage({
-      message: res.message || '操作成功!',
-      type: res.code == 101 ? 'success' : 'warning',
-    })
-    loading.value = false
-    changePage(1)
-  })
-  loading.value = false
-}
-
-function delContent(id) {
-  Modal.confirm({
-    title: '温馨提示',
-    content: '您确定删除当前内容吗?',
-    onOk: async () => {
-      // await content
-      //   .DeleteContent({ id: id })
-      //   .then(res => {
-      //     if (res.code == 101) {
-      //       ElMessage({
-      //         message: res.message || '操作成功!',
-      //         type: 'success',
-      //       })
-      //       this.changePage(1) //重新获取列表
-      //     } else {
-      //       ElMessage({
-      //         message: res.message || '操作失败!',
-      //         type: 'warning',
-      //       })
-      //     }
-      //   })
-      //   .catch(e => {
-      //     ElMessage({
-      //       message: e.message || '添加失败!',
-      //       type: 'error',
-      //     })
-      //   })
-    },
-  })
-}
-
-const videoUrl = ref('')
-const videoShow = ref(false)
-function showVideo(url) {
-  videoUrl.value = url
-  videoShow.value = true
-}
-
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 234
src/views/requireManage/addNeeds.vue

@@ -1,234 +0,0 @@
-/**
-  // author:zhangyy
-  // time:2023-03-22
-  // desc:新增采购需求
-*/
-<template>
-  <div class="addNeeds">
-    <div>
-     <Form ref="newCowForm" :model="newContentForm" :rules="newContentRule" :label-width="150">
-        <Divider orientation="left"><b>采购信息</b></Divider>
-        <Form-item label="采购牛只类别" prop="classifyId">
-          <Cascader :data="classifyDataList" v-model="newContentForm.classifyId" @on-change="changeSelClassify" style="width:30%;" />
-        </Form-item>
-        <Form-item label="意向采购单价" prop="buyPrice">
-          <InputNumber v-model="newContentForm.buyPrice" placeholder="请输入意向采购单价"  style="width: 30%" />&nbsp;&nbsp;&nbsp;
-          <RadioGroup v-model="newContentForm.priceUnitCode">
-            <Radio :label="1">元/头</Radio>
-            <Radio :label="2">元/公斤</Radio>
-            <Radio :label="3">元/斤</Radio>
-          </RadioGroup>
-        </Form-item>
-        <Form-item label="采购数量" prop="buyCount" min-width="130">
-          <InputNumber v-model="newContentForm.buyCount " placeholder="请输入采购数量"  style="width: 30%" />&nbsp;&nbsp;&nbsp;
-          <RadioGroup v-model="newContentForm.countUnitCode">
-            <Radio :label="1">头</Radio>
-            <Radio :label="2">公斤</Radio>
-            <Radio :label="3">斤</Radio>
-          </RadioGroup>
-        </Form-item>
-        <Form-item label="牛只重量" prop="weight">
-          <Select :label-in-value="true" v-model="newContentForm.weight" multiple style="width:30%" placeholder="请选择牛只规格重量(多选)">
-            <Option v-for="item in cowWeightList" :value="item" :key="item" >{{ item }}</Option>
-          </Select>
-        </Form-item>
-        <Form-item label="牛只膘情">
-          <Input v-model="fat" placeholder="请输入内容" style="width: 20%"></Input>
-          <Button type="primary" style="margin-left:20px" @click="addFatInfo">确定生成</Button>
-        </Form-item>
-        <Form-item label="" prop="fatInfoList">
-          <Tag v-for="(item,index) in newContentForm.fatInfoList" :key="item" :name="item" @on-close="delTag(index)" color="#B62D4A" closable>{{ item }}</Tag>
-        </Form-item>
-        <Form-item label="采购地区" prop="blongArea">
-          <Cascader :data="areadata" change-on-select v-model="newContentForm.blongArea"  @on-change="changeSelArea" style="width:30%" />
-        </Form-item>
-        <Form-item label="采购要求" prop="buyContent">
-          <BasicEditor ref="editotTool"></BasicEditor>
-        </Form-item>
-      </Form>
-    </div>
-    <div style="text-align:center;margin-bottom:3em;">
-      <Button @click="" style="margin-right:3em;">取消返回</Button>
-      <Button type="warning" @click="confirmSubAddNewCow(0)" style="margin-right:3em;">保存草稿</Button>
-      <Button type="primary" @click="confirmSubAddNewCow(1)">直接发布</Button>
-    </div>
-  </div>
-</template>
-
-<script>
-import { Message,Modal,Spin } from 'view-ui-plus'
-import { defineComponent, reactive,getCurrentInstance,onMounted,ref} from 'vue'
-import BasicEditor from '@/components/wangEditor/BasicEditor.vue'
-import areadata from '../beefSaleManage/assets/area.json'
-import router from '@/router'
-import {cow} from '@/request/api'
-import { useRouter } from 'vue-router';
-
-export default defineComponent({
-  components:{
-    BasicEditor
-  },
-  setup() {
-    const $router = useRouter();
-    let {proxy} = getCurrentInstance();
-    let newContentForm = reactive({
-      classifyId:[],buyCount:null,blongArea:[],buyPrice:null,fatInfoList:[],weight:[],priceUnitCode:1,countUnitCode:1,
-      buyContent:'',classifyOne:'',classifyOneName:'',classifyTwo:'',classifyTwoName:'',classifyThree:'',classifyThreeName:'',province:'',city:'',area:'',
-    })
-    // 表单验证项
-    let newContentRule = ref({
-      classifyId: [{ required: true, type:'array', message: '请选择采购牛只类别', trigger: 'change' }],
-      buyCount: [{ required: true, type:'number', message: '请输入采购数量', trigger: 'change' }], 
-      blongArea: [{ required: true, type:'array', message: '请选择采购地区', trigger: 'change' }],
-      priceUnitCode:[{ required: true, message: '请选择采购单价单位', trigger: 'change' }],
-      countUnitCode:[{ required: true, message: '请选择采购数量单位', trigger: 'change' }],
-      buyPrice:[
-        { required: true, message: '请输入意向采购单价'},
-        // { message: '小数保留2位', trigger:'change', pattern:/^(([1-9]\d{0,3})|0)(\.\d{0,2})?$/,}
-      ],
-      fatInfoList: [{ required: true,type:'array', message: '请填写牛只膘情', trigger: 'change' }],
-      weight: [{ required: true,type:'array',  message: '请选择牛只重量', trigger: 'change' }],
-    })
-
-    // 获取全部牛只分类内容
-    let classifyDataList = ref([])  //分类列表数据
-    async function getAllClassifyData(){
-      await cow.getCattleClassify().then(res=>{
-        if(res.code === 101){
-          let finalData = rinseClassiftData(res.data)
-          classifyDataList.value = finalData
-        }
-      })
-    }
-
-    // 清洗分类数据
-    function rinseClassiftData(data){
-      data = JSON.parse(JSON.stringify(data).replace(/name/g, 'label'))
-      data = JSON.parse(JSON.stringify(data).replace(/id/g, 'value'))
-      return data
-    }
-    
-    let cowWeightList = ref([])
-    // 获取牛只体重列表
-    function getCowWeightSelList(){
-      cow.getCattleWeightScopes().then(res=>{
-        if(res.code === 101){
-          cowWeightList.value = res.data || []
-        }
-      })
-    }
-
-    // 改变选择的分类
-    function changeSelClassify(val,arr){
-      newContentForm.classifyOne = arr[0]?arr[0].value:''
-      newContentForm.classifyOneName = arr[0]?arr[0].label:''
-      newContentForm.classifyTwo = arr[1]?arr[1].value:''
-      newContentForm.classifyTwoName = arr[1]?arr[1].label:''
-      newContentForm.classifyThree = arr[2]?arr[2].value:''
-      newContentForm.classifyThreeName = arr[2]?arr[2].label:''
-    }
-
-    let fat = ref('')
-    // 生成牛只膘情
-    function addFatInfo(){
-        if(fat.value == ''){
-            Message.error({content: '请输入牛只膘情'})
-        }else{
-            newContentForm.fatInfoList.push(fat.value)
-            newContentForm.fatInfo = newContentForm.fatInfoList.toString()
-            fat.value = ''
-        }
-    }
-    
-    // 删除一个膘情信息
-    function delTag(ind){
-      this.newContentForm.fatInfoList.splice(ind,1)
-      this.newContentForm.fatInfo = this.newContentForm.fatInfoList.toString()
-    }
-
-    function changeSelArea(val,arr){
-      newContentForm.province = arr[0]?arr[0].label:''
-      newContentForm.city = arr[1]?arr[1].label:''
-      newContentForm.area = arr[2]?arr[2].label:''
-    }
-
-    function handleFormatError (file) {
-      Message.error({content: '文件格式不正确'})
-    }
-    
-    // 选择牛只规格
-    function changeSelWeight(val){
-      console.log('牛只规格',val);
-      newContentForm.weight = val
-    }
-
-    // 上架或保存仓库
-    function confirmSubAddNewCow(type){
-      newContentForm.buyContent = proxy.$refs.editotTool.valueHtml  //富文本传值
-      proxy.$refs['newCowForm'].validate(async (valid) => {
-        if (valid) {
-          let sendParams = JSON.parse(JSON.stringify(newContentForm))
-          sendParams.status = type
-          let tipFont = ''
-          type == 0? tipFont = '保存草稿': tipFont ='直接上架'
-          Modal.confirm({
-              title: '温馨提示',
-              content: `<p>您确定将当前采购需求<b> ${tipFont} </b>?</p>`,
-              onOk: () => {
-                subreq()
-              },
-              onCancel: () => {
-                Message.info('您已取消操作');
-              }
-          });
-          // 提交请求
-          async function subreq(){
-            Spin.show()
-            await cow.saveCattleBuyDemand(sendParams).then(res=>{
-              Spin.hide()
-              if(res.code == 101){
-                Message.success({content: res.message || '操作成功'})
-                router.push('procurementNeeds')
-              }else{
-                Message.error({content: res.message || '操作失败'})
-              }
-            }).catch(e=>{
-              Spin.hide()
-              Message.error({content: e.message || '操作失败'})
-            })
-          }
-          
-        } else {
-          Message.warning({content:'请填写完表单数据'})
-        }
-      })
-    }
-
-    onMounted(async()=>{
-      getAllClassifyData()  //获取全部分类
-      getCowWeightSelList() //获取牛只选择体重列表
-    })
-
-    return {
-      fat,newContentRule,newContentForm,
-      classifyDataList,areadata,cowWeightList,
-      handleFormatError,changeSelWeight,changeSelClassify,
-      changeSelArea,confirmSubAddNewCow,addFatInfo,delTag
-    }
-  },
-  methods: {
-    
-  },
-})
-</script>
-
-<style lang="scss" scoped>
-.addNeeds{
-  padding: 1em;
-}
-</style>
-<style lang="scss">
-.addNeeds{
-
-}
-</style>

+ 0 - 269
src/views/requireManage/editNeeds.vue

@@ -1,269 +0,0 @@
-/**
-  // author:zhangyy
-  // time:2023-03-22
-  // desc:编辑采购需求
-*/
-<template>
-  <div class="editNeeds">
-    <div>
-     <Form ref="newCowForm" :model="newContentForm" :rules="newContentRule" :label-width="150">
-        <Divider orientation="left"><b>采购信息</b></Divider>
-        <Form-item label="采购牛只类别" prop="classifyId">
-          <Cascader :data="classifyDataList" v-model="newContentForm.classifyId" @on-change="changeSelClassify" style="width:30%;" />
-        </Form-item>
-        <Form-item label="意向采购单价" prop="buyPrice">
-          <InputNumber v-model="newContentForm.buyPrice" placeholder="请输入意向采购单价"  style="width: 30%" />&nbsp;&nbsp;&nbsp;
-          <RadioGroup v-model="newContentForm.priceUnitCode">
-            <Radio :label="1">元/头</Radio>
-            <Radio :label="2">元/公斤</Radio>
-            <Radio :label="3">元/斤</Radio>
-          </RadioGroup>
-        </Form-item>
-        <Form-item label="采购数量" prop="buyCount">
-          <InputNumber v-model="newContentForm.buyCount" placeholder="请输入采购数量"  style="width: 30%" />&nbsp;&nbsp;&nbsp;
-          <RadioGroup v-model="newContentForm.countUnitCode">
-            <Radio :label="1">头</Radio>
-            <Radio :label="2">公斤</Radio>
-            <Radio :label="3">斤</Radio>
-          </RadioGroup>
-        </Form-item>
-        <Form-item label="牛只重量" prop="weight">
-          <Select :label-in-value="true" v-model="newContentForm.weight" multiple style="width:30%" placeholder="请选择牛只规格重量(多选)">
-            <Option v-for="item in cowWeightList" :value="item" :key="item" >{{ item }}</Option>
-          </Select>
-        </Form-item>
-        <Form-item label="牛只膘情">
-          <Input v-model="fat" placeholder="请输入内容" style="width: 20%"></Input>
-          <Button type="primary" style="margin-left:20px" @click="addFatInfo">确定生成</Button>
-        </Form-item>
-        <Form-item label="" prop="fatInfoList">
-          <Tag v-for="(item,index) in newContentForm.fatInfoList" :key="item" :name="item" @on-close="delTag(index)" color="#B62D4A" closable>{{ item }}</Tag>
-        </Form-item>
-        <Form-item label="采购地区" prop="blongArea">
-          <Cascader :data="areadata" change-on-select v-model="newContentForm.blongArea" class="areaClass" :placeholder="pleasett"  @on-change="changeSelArea" style="width:30%" />
-        </Form-item>
-        <Form-item label="采购要求" prop="buyContent">
-          <BasicEditor ref="editotTool"></BasicEditor>
-        </Form-item>
-      </Form>
-    </div>
-    <div style="text-align:center;margin-bottom:3em;">
-      <Button @click="$router.go(-1)" style="margin-right:3em;">取消返回</Button>
-      <Button type="warning" @click="confirmSubAddNewCow(0)" style="margin-right:3em;">保存草稿</Button>
-      <Button type="primary" @click="confirmSubAddNewCow(1)">直接发布</Button>
-    </div>
-  </div>
-</template>
-
-<script>
-import { Message,Modal,Spin } from 'view-ui-plus'
-import { defineComponent, reactive,getCurrentInstance,onMounted,ref} from 'vue'
-import BasicEditor from '@/components/wangEditor/BasicEditor.vue'
-import areadata from '../beefSaleManage/assets/area.json'
-import router from '@/router'
-import {cow} from '@/request/api'
-import { useRouter } from 'vue-router';
-
-export default defineComponent({
-  components:{
-    BasicEditor
-  },
-  setup() {
-    const $router = useRouter();
-    let {proxy} = getCurrentInstance();
-    let newContentForm = reactive({
-      classifyId:[],buyCount:null,blongArea:[],buyPrice:null,fatInfoList:[],weight:[],priceUnitCode:1,countUnitCode:1,
-      buyContent:'',classifyOne:'',classifyOneName:'',classifyTwo:'',classifyTwoName:'',classifyThree:'',classifyThreeName:'',province:'',city:'',area:'',
-    })
-    // 表单验证项
-    let newContentRule = ref({
-      classifyId: [{ required: true, type:'array', message: '请选择采购牛只类别', trigger: 'change' }],
-      buyCount: [{ required: true, type:'number', message: '请输入采购数量', trigger: 'change' }], 
-      blongArea: [{ required: true, type:'array', message: '请选择采购地区', trigger: 'change' }],
-      priceUnitCode:[{ required: true, message: '请选择采购单价单位', trigger: 'change' }],
-      countUnitCode:[{ required: true, message: '请选择采购数量单位', trigger: 'change' }],
-      buyPrice:[
-        { required: true, message: '请输入意向采购单价',},
-        { message: '小数保留2位', trigger:'change', pattern:/^(([1-9]\d{0,3})|0)(\.\d{0,2})?$/,}
-      ],
-      fatInfoList: [{ required: true,type:'array', message: '请填写牛只膘情', trigger: 'change' }],
-      weight: [{ required: true,type:'array',  message: '请选择牛只重量', trigger: 'change' }],
-    })
-    const pleasett = ref('请选择')
-
-    // 获取全部牛只分类内容
-    let classifyDataList = ref([])  //分类列表数据
-    async function getAllClassifyData(){
-      await cow.getCattleClassify().then(res=>{
-        if(res.code === 101){
-          let finalData = rinseClassiftData(res.data)
-          classifyDataList.value = finalData
-        }
-      })
-    }
-
-    // 清洗分类数据
-    function rinseClassiftData(data){
-      data = JSON.parse(JSON.stringify(data).replace(/name/g, 'label'))
-      data = JSON.parse(JSON.stringify(data).replace(/id/g, 'value'))
-      return data
-    }
-    
-    let cowWeightList = ref([])
-    // 获取牛只体重列表
-    function getCowWeightSelList(){
-      cow.getCattleWeightScopes().then(res=>{
-        if(res.code === 101){
-          cowWeightList.value = res.data || []
-        }
-      })
-    }
-
-    // 改变选择的分类
-    function changeSelClassify(val,arr){
-      newContentForm.classifyOne = arr[0]?arr[0].value:''
-      newContentForm.classifyOneName = arr[0]?arr[0].label:''
-      newContentForm.classifyTwo = arr[1]?arr[1].value:''
-      newContentForm.classifyTwoName = arr[1]?arr[1].label:''
-      newContentForm.classifyThree = arr[2]?arr[2].value:''
-      newContentForm.classifyThreeName = arr[2]?arr[2].label:''
-    }
-
-    let fat = ref('')
-    // 生成牛只膘情
-    function addFatInfo(){
-      if(fat.value == ''){
-        Message.error({content: '请输入牛只膘情'})
-      }else{
-        newContentForm.fatInfoList.push(fat.value)
-        newContentForm.fatInfo = newContentForm.fatInfoList.toString()
-        fat.value = ''
-      }
-    }
-
-    // 删除一个膘情信息
-    function delTag(ind){
-      newContentForm.fatInfoList.splice(ind,1)
-      newContentForm.fatInfo = newContentForm.fatInfoList.toString()
-    }
-
-    function changeSelArea(val,arr){
-      newContentForm.province = arr[0]?arr[0].label:''
-      newContentForm.city = arr[1]?arr[1].label:''
-      newContentForm.area = arr[2]?arr[2].label:''
-    }
-
-    function handleFormatError (file) {
-      Message.error({content: '文件格式不正确'})
-    }
-    
-    // 选择牛只规格
-    function changeSelWeight(val){
-      console.log('牛只规格',val);
-      newContentForm.weight = val
-    }
-
-    // 回显
-    async function getNeedsDetail(id){
-        const params = {
-          id:id
-        }
-        await cow.getCattleBuyDemandById(params).then(res =>{
-            if (res.code == 101) {
-                res.data.fat = []
-                res.data.buyPrice = Number(res.data.buyPrice)
-                res.data.buyCount = Number(res.data.buyCount)
-                res.data.fat = res.data.fatInfo.split(",");
-                res.data.weightList = []
-                let arr = res.data.weight.split(",");
-                arr.forEach(e=>{
-                    res.data.weightList.push(e.replace(/\"/g, "").replace(/\[/g, "").replace(/\]/g, ""))
-                });
-                res.data.weight = res.data.weightList
-                res.data.fatInfoList = res.data.fat
-                Object.assign(newContentForm,res.data);
-                newContentForm.classifyId = [res.data.classifyOne,res.data.classifyTwo,res.data.classifyThree]
-                pleasett.value = res.data.province +' / '+res.data.city+' / '+res.data.area
-                newContentForm.blongArea = ['北京']
-                proxy.$refs.editotTool.valueHtml =res.data.buyContent  // 富文本回显
-            }else{
-                Message.error(res.message)
-            }
-        })
-    }
-
-    // 上架或保存仓库
-    function confirmSubAddNewCow(type){
-      newContentForm.buyContent = proxy.$refs.editotTool.valueHtml  //富文本传值
-      proxy.$refs['newCowForm'].validate(async (valid) => {
-        if (valid) {
-          let sendParams = JSON.parse(JSON.stringify(newContentForm))
-          sendParams.status = type
-          let tipFont = ''
-          type == 0? tipFont = '保存草稿': tipFont ='直接上架'
-          Modal.confirm({
-              title: '温馨提示',
-              content: `<p>您确定将当前采购需求<b> ${tipFont} </b>?</p>`,
-              onOk: () => {
-                subreq()
-              },
-              onCancel: () => {
-                Message.info('您已取消操作');
-              }
-          });
-          // 提交请求 -- 编辑
-          async function subreq(){
-            Spin.show()
-            await cow.updateCattleBuyDemand(sendParams).then(res=>{
-              Spin.hide()
-              if(res.code == 101){
-                Message.success({content: res.message || '操作成功'})
-                router.push('procurementNeeds')
-              }else{
-                Message.error({content: res.message || '操作失败'})
-              }
-            }).catch(e=>{
-              Spin.hide()
-              Message.error({content: e.message || '操作失败'})
-            })
-          }
-          
-        } else {
-          Message.warning({content:'请填写完表单数据'})
-        }
-      })
-    }
-
-    onMounted(async()=>{
-      if(router.currentRoute.value.query.id){
-        getNeedsDetail(router.currentRoute.value.query.id)
-      }
-      getAllClassifyData()  //获取全部分类
-      getCowWeightSelList() //获取牛只选择体重列表
-    })
-
-    return {
-      fat,newContentRule,newContentForm,
-      classifyDataList,areadata,cowWeightList,pleasett,
-      handleFormatError,changeSelWeight,changeSelClassify,
-      changeSelArea,confirmSubAddNewCow,addFatInfo,delTag
-    }
-  },
-  methods: {
-    
-  },
-})
-</script>
-
-<style lang="scss" scoped>
-.editNeeds{
-  padding: 1em;
-}
-</style>
-<style lang="scss">
-.editNeeds{
-    .areaClass .ivu-input-default::placeholder{
-    color:rgba(0, 0, 0, 0.685) !important;
-    }
-}
-</style>

+ 0 - 107
src/views/requireManage/procurementDetail.vue

@@ -1,107 +0,0 @@
-/**procurementDetail
-  // author:zhangyy
-  // time:2023-03-23
-  // desc:采购需求详情
-*/
-<template>
-  <div class="procurementDetail">
-
-    <Button @click="$router.go(-1)">返回</Button>
-    <Divider orientation="left"><b>采购信息</b></Divider>
-    <DescriptionList :col="1" style="margin:30px 60px" :gutter="40">
-      <Description term="采购牛只类别:">
-        {{ newContentForm.classifyOneName}}/{{newContentForm.classifyTwoName }}/{{newContentForm.classifyThreeName  }}
-      </Description>
-      <Description term="意向采购单价:">
-        <Numeral :value="newContentForm.buyPrice" format="0,0.00" style="color:#D64E47; font-weight:bold;">
-          <template #suffix>
-            <strong>{{newContentForm.priceUnitCode == 1? '元/头':(newContentForm.priceUnitCode == 2?"元/公斤":'元/斤' )}}</strong>
-          </template>
-        </Numeral>
-      </Description>
-      <Description term="采购数量:">
-        {{ newContentForm.buyCount}} {{newContentForm.countUnitCode == 1? '头':(newContentForm.countUnitCode == 2?"公斤":'斤' )}}
-      </Description>
-      <Description term="牛只重量:">
-        <Tag color="blue" v-for="(item,index) in newContentForm.weightList" :key="index">{{item}} </Tag>
-      </Description>
-      <Description term="牛只膘情:">
-        <Tag color="#B62D4A" v-for="(item,index) in newContentForm.fat" :key="index">{{item}} </Tag>
-      </Description>
-      <Description term="采购地区:">
-        <Icon type="md-pin" color="#2db7f5" /> 
-        {{ newContentForm.province}}-{{ newContentForm.city}}-{{newContentForm.area}}
-      </Description>
-      <Description term="采购要求:">
-        <div v-html="newContentForm.buyContent" class="content_box"></div>
-      </Description>
-    </DescriptionList>
-  </div>
-</template>
-
-<script>
-import { Message} from 'view-ui-plus'
-import { defineComponent, reactive,getCurrentInstance,onMounted,ref} from 'vue'
-import router from '@/router'
-import {cow} from '@/request/api'
-
-export default defineComponent({
-  components:{
-  },
-  setup() {
-    let newContentForm = ref({})
-
-    async function getNeedsDetail(id){
-        const params = {
-          id:id
-        }
-        await cow.getCattleBuyDemandById(params).then(res =>{
-            if (res.code == 101) {
-                res.data.fat = []
-                res.data.fat = res.data.fatInfo.split(",");
-                res.data.weightList = []
-                let arr = res.data.weight.split(",");
-                arr.forEach(e=>{
-                    res.data.weightList.push(e.replace(/\"/g, "").replace(/\[/g, "").replace(/\]/g, ""))
-                });
-                newContentForm.value = res.data
-            }else{
-                Message.error(res.message)
-            }
-        })
-    }
-
-    onMounted(async()=>{
-      await getNeedsDetail(router.currentRoute.value.query.id)  //获取采购需求
-    })
-
-    return {
-      newContentForm,getNeedsDetail
-    }
-  },
-  methods: {
-    
-  },
-})
-</script>
-
-<style lang="scss" scoped>
-.procurementDetail{
-  padding: 1em;
-}
-</style>
-<style lang="scss">
-.procurementDetail{
-  .content_box{
-    width: 90%;
-    img{width: 100%;}
-    video{width: 100%;}
-  }
-  .ivu-description-term{
-    font-weight: 550;
-  }
-  .ivu-description-detail{
-    padding-left: 2em;
-  }
-}
-</style>

+ 0 - 279
src/views/requireManage/procurementNeeds.vue

@@ -1,279 +0,0 @@
-/**
-  // author:zhangyy
-  // time:2023-03-22
-  // desc:采购需求列表
-*/
-<template>
-  <div class="procurementNeeds">
-     <!-- 筛选 -->
-     <Row :gutter="8">
-      <Col span="3">
-        <Select v-model="filtInfoData.status" clearable placeholder="采购信息状态">
-          <Option v-for="item in needStatus" :value="item.value" :key="item.value">{{ item.label }}</Option>
-        </Select>
-      </Col>
-      <Col span="5">
-        <Cascader placeholder="请选择牛只分类" :data="classifyDataList" change-on-select v-model="filtInfoData.classifyId" @on-change="changeSelClassify" />
-      </Col>
-      <Col span="4">
-        <DatePicker type="date" placeholder="请选择开始时间" v-model="filtInfoData.startDate" @on-change="changeStartDate"  />
-      </Col>
-      <Col style="display:inline-block;margin-top:5px"> —</Col>
-      <Col span="4">
-        <DatePicker type="date" placeholder="请选择结束时间" v-model="filtInfoData.endDate" @on-change="changeEndDate" />
-      </Col>
-      <Col span="5">
-        <Button type="primary" @click="getData">搜索</Button>
-      </Col>
-      <Col span="2">
-        <Button type="success" @click="$router.push('addNeeds')">新增采购需求</Button>
-      </Col>
-    </Row>
-    <!-- 表格部分 -->
-    <el-table :data="needTabData.data" border style="width: 100%; margin-top:20px;">
-      <el-table-column type="index" label="序号" width="55" align="center" />
-      <el-table-column label="添加时间" width="180">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无'}}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只分类" width="200">
-        <template #default="scope">
-          {{ scope.row.classifyOneName}}/{{scope.row.classifyTwoName }}/{{scope.row.classifyThreeName  }}
-        </template>
-      </el-table-column>
-      <el-table-column label="状态" align="center" width="100">
-        <template #default="scope">
-          <Tag color="green" v-if="scope.row.status == 1">展示中</Tag>
-          <Tag color="magenta" v-if="scope.row.status == 0">已下架</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column prop="buyPrice" label="意向采购单价" align="center" width="130">
-        <template #default="scope">
-          <Numeral :value="scope.row.buyPrice" format="0,0.00" style="color:#D64E47; font-weight:bold;">
-            <template #suffix>
-              <strong>{{scope.row.priceUnitCode == 1? ' 元/头':(scope.row.priceUnitCode == 2?" 元/公斤":' 元/斤' )}}</strong>
-            </template>
-          </Numeral>
-        </template>
-      </el-table-column>
-      <el-table-column label="采购数量" prop="buyCount" align="center" min-width="100">
-        <template #default="scope">
-          {{ scope.row.buyCount }} {{scope.row.countUnitCode == 1? '头':(scope.row.countUnitCode == 2?"公斤":'斤' )}}
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只重量" prop="weight" min-width="120">
-        <template #default="scope">
-          <Tag color="blue" v-for="(item,index) in scope.row.weightList" :key="index">{{item}}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="牛只膘情" min-width="120">
-        <template #default="scope">
-          <Tag color="#B62D4A" v-for="(item,index) in scope.row.fat" :key="index">{{item}}</Tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="采购地区" min-width="130">
-        <template #default="scope">
-          <Icon type="md-pin" color="#2db7f5" /> 
-          <span style="color:#999; font-size:12px;">{{ scope.row.province}}-{{ scope.row.city}}-{{scope.row.area}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" width="200"  fixed="right">
-        <template  #default="scope">
-          <Button  size="small" type="primary" ghost @click="needsDetail(scope.row.id)" style="margin-right:5px">查看详情</Button>
-          <Button  size="small" type="success" @click="offSafe(scope.row.id,1)" v-if="scope.row.status == 0">发布信息</Button>
-          <Button  size="small" type="warning" @click="offSafe(scope.row.id,0)" v-if="scope.row.status == 1">下架信息</Button>
-          <Button  size="small" type="primary" @click="editNeeds(scope.row.id)" v-if="scope.row.status == 0" style="margin-top:5px;margin-right:5px" >编辑信息</Button>
-          <Button  size="small" type="error" @click="delNeeds(scope.row.id)" v-if="scope.row.status == 0" style="margin-top:5px;">删除信息</Button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <!-- 分页 -->
-    <div class="page_style">
-      <Page :total="needTabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-  </div>
-</template>
-
-<script>
-import { defineComponent, ref ,reactive, onMounted} from 'vue'
-import { cow } from '@/request/api'
-import { Message,Modal,Spin } from 'view-ui-plus'
-import moment from 'moment'
-
-export default defineComponent({
-  components:{
-    
-  },
-  setup() {
-   
-   let filtInfoData = reactive({ // 搜索
-      limit:10,offset:0,
-    })
-
-    let needStatus = reactive([
-        {
-            value: 1,
-            label: '展示中'
-        },
-        {
-            value: 0,
-            label: '已下架'
-        },
-    ])
-
-    let needTabData = ref([])  // 列表数据
-
-    //获取列表内容
-    async function getData(){
-      await cow.getBuyDemandPage(filtInfoData).then(res =>{
-        if (res.code == 101) {
-          res.data.forEach(element => {
-            element.fat = []
-            element.fat = element.fatInfo.split(",");
-            element.weightList = []
-            let arr = element.weight.split(",");
-            arr.forEach(e=>{
-              element.weightList.push(e.replace(/\"/g, "").replace(/\[/g, "").replace(/\]/g, ""))
-            }) 
-          });
-          needTabData.value = res
-        }
-      })
-    }
-
-    // 获取全部牛只分类内容
-    let classifyDataList = ref([])  //分类列表数据
-    async function getAllClassifyData(){
-      await cow.getCattleClassify().then(res=>{
-        if(res.code === 101){
-          let finalData = rinseClassiftData(res.data)
-          classifyDataList.value = finalData
-        }
-      })
-    }
-    // 清洗分类数据
-    function rinseClassiftData(data){
-      data = JSON.parse(JSON.stringify(data).replace(/name/g, 'label'))
-      data = JSON.parse(JSON.stringify(data).replace(/id/g, 'value'))
-      return data
-    }
-    
-    // 改变选择的分类
-    function changeSelClassify(val,arr){
-      filtInfoData.classifyOne = arr[0]?arr[0].value:''
-      filtInfoData.classifyTwo = arr[1]?arr[1].value:''
-      filtInfoData.classifyThree = arr[2]?arr[2].value:''
-    }
-
-    let currentPage = ref(1)
-    //更改页码
-    function changePage (page) {
-      if(needTabData.value.limit){
-        filtInfoData.offset = (page -1) *  needTabData.value.limit  //更新偏移量
-        currentPage = page  //切换当前页码
-        getData() 
-      }
-    }
-
-    // 搜索日期格式
-    function changeEndDate(val){
-      filtInfoData.endDate = val;
-    }
-
-    function changeStartDate(val){
-      filtInfoData.startDate = val
-    }
-
-    //牛只下架
-    function  offSafe(id,type){
-      let tipFont = ''
-        type == 0? tipFont = '下架': tipFont ='发布'
-        Modal.confirm({
-          title: '温馨提示',
-          content: `<p>您确定将当前采购需求<b> ${tipFont} </b>?</p>`,
-          onOk: () => {
-            confirmOffSafe()
-          },
-          onCancel: () => {
-            Message.info('您已取消操作');
-          }
-        });
-        const params = {
-          id:id,
-          status: type
-        }
-      //确定下架
-      async function confirmOffSafe() {
-        await cow.offOnSale(params).then(res =>{
-          if (res.code == 101) {
-            Message.success(type == 0?'下架成功': '发布成功')
-            getData()
-          }else{
-            Message.error(res.message)
-          }
-        })
-      }
-    }
-    // 查看详情
-    function needsDetail(id){
-      this.$router.push({path:'procurementDetail',query:{id:id}})
-    }
-
-    // 编辑
-    function editNeeds(id){
-      this.$router.push({path:'editNeeds',query:{id:id}})
-    }
-
-    // 删除
-    function delNeeds(id){
-      Modal.confirm({
-          title: '温馨提示',
-          content: `<p>您确定将当前采购需求<b>删除</b>?</p>`,
-          onOk: () => {
-            confirmDel()
-          },
-          onCancel: () => {
-            Message.info('您已取消操作');
-          }
-        });
-        const params = {
-          id:id,
-          deleted:'1' 
-        }
-      //确定
-      async function confirmDel() {
-        await cow.updateCattleBuyDemand(params).then(res =>{
-          if (res.code == 101) {
-            Message.success('删除成功')
-            getData()
-          }else{
-            Message.error(res.message)
-          }
-        })
-      }
-    }
-
-    onMounted(()=>{
-      getData() 
-      getAllClassifyData()  //获取全部分类
-
-    })
-
-    return {
-      needStatus,needTabData,filtInfoData,currentPage,classifyDataList,getAllClassifyData,moment,
-      getData,changePage,changeSelClassify,offSafe,needsDetail,editNeeds,delNeeds,changeStartDate,changeEndDate
-    }
-  },
-})
-</script>
-
-<style lang="scss" scoped>
-.procurementNeeds{
-  padding: 1em;
-  .page_style{
-    text-align: right; margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 0 - 81
src/views/serviceFee/index.vue

@@ -1,81 +0,0 @@
-<template>
-  <div class="protocol" v-loading="loading">
-    <el-form :model="form" :rules="rules" ref="ruleFormRef" label-width="180">
-      <el-form-item label="解锁单条信息费用" prop="itemUnlockFee">
-        <el-input-number :min="0" v-model="form.itemUnlockFee" style="width: 300px" placeholder="请输入解锁单条信息费用" />
-      </el-form-item>
-      <el-form-item label="每公斤服务费" prop="shopFeePerKg">
-        <el-input-number :min="0" v-model="form.shopFeePerKg" style="width: 300px" placeholder="请输入每公斤服务费" />
-      </el-form-item>
-      <!-- <el-form-item label="协议内容" prop="agreeUnlockInfo">
-        <BasicEditor ref="editotTool"></BasicEditor>
-      </el-form-item> -->
-      <el-form-item>
-        <div style="width: 80%; text-align: left">
-          <!-- <el-button style="margin-right: 3rem" @click="$router.go(-1)">返回</el-button> -->
-          <el-button type="primary" @click="submitForm(ruleFormRef)" :loading="loading"> 更新费用 </el-button>
-        </div>
-      </el-form-item>
-    </el-form>
-  </div>
-</template>
-
-<script setup>
-import { Message } from 'view-ui-plus'
-import { ref, reactive, onMounted } from 'vue'
-import BasicEditor from '@/components/wangEditor/BasicEditor.vue'
-import { cow } from '@/request/api'
-import { useRouter } from 'vue-router'
-const router = useRouter()
-
-const loading = ref(false)
-const ruleFormRef = ref()
-const form = ref({})
-
-const getServiceFee = async () => {
-  loading.value = true
-  await cow.getServiceFee().then(res => {
-    if (res.code == 101 && res.data) {
-      form.value = res.data
-    }
-  })
-  loading.value = false
-}
-
-onMounted(() => {
-  getServiceFee()
-})
-
-const rules = reactive({
-  itemUnlockFee: [{ required: true, message: '请输入信息费用', trigger: 'blur' }],
-  shopFeePerKg: [{ required: true, message: '请输入每公斤服务费', trigger: 'blur' }],
-  // agreeUnlockInfo: [{ required: true, message: '请输入协议内容', trigger: 'blur' }],
-})
-
-const submitForm = async formEl => {
-  if (!formEl) return
-  await formEl.validate((valid, fields) => {
-    if (valid) {
-      loading.value = true
-      cow
-        .updateServiceFee(form.value)
-        .then(res => {
-          loading.value = false
-          Message.success('更新成功')
-          getServiceFee()
-        })
-        .catch(err => {
-          loading.value = false
-        })
-    } else {
-      console.log('error submit!', fields)
-    }
-  })
-}
-</script>
-
-<style lang="scss" scoped>
-.protocol {
-  padding: 20px;
-}
-</style>

+ 0 - 76
src/views/serviceFee/shopFeeList.vue

@@ -1,76 +0,0 @@
-<template>
-  <div class="contentList">
-    <!-- <Input v-model="typesearchFilter.name" placeholder="请输入标题名称" style="width: 480px"></Input>
-
-    <el-button type="primary" @click="changePage(1)">查询</el-button> -->
-
-    <el-table v-loading="loading" :data="tabData.data" style="width: 100%; margin-top: 2em" border>
-      <el-table-column label="序号" type="index" width="70" align="center"></el-table-column>
-      <el-table-column label="时间" width="160" align="center">
-        <template #default="scope">
-          {{ moment(scope.row.addTime).format('yyyy-MM-DD hh:mm:ss') || '暂无' }}
-        </template>
-      </el-table-column>
-      <el-table-column label="买方" prop="buyerOrgName" align="center"></el-table-column>
-      <el-table-column label="卖方" prop="salerOrgName" align="center"></el-table-column>
-      <el-table-column label="服务费" align="center" prop="shopFee" width="120"> </el-table-column>
-      <el-table-column label="公斤数" prop="confirmOrderWeight" width="120"></el-table-column>
-      <el-table-column label="每公斤服务费" align="center" prop="shopFeePerKg" width="120"> </el-table-column>
-
-      <!-- <el-table-column label="操作" fixed="right" width="120">
-        <template #default="scope">
-          <el-button type="danger" size="small" @click="delContent(scope.row.id)">删除</el-button>
-        </template>
-      </el-table-column> -->
-    </el-table>
-
-    <div class="page_style">
-      <Page :total="tabData.total" :model-value="currentPage" show-elevator show-total @on-change="changePage" />
-    </div>
-  </div>
-</template>
-
-<script setup>
-import { defineComponent, ref, reactive, onMounted } from 'vue'
-import moment from 'moment'
-import { cow } from '@/request/api'
-let typesearchFilter = reactive({ limit: 10, offset: 0 })
-
-let tabData = ref({})
-const loading = ref(false)
-//获取列表内容
-async function getData() {
-  loading.value = true
-  await cow.shopFeeList(typesearchFilter).then(res => {
-    if (res.code == 101) {
-      tabData.value = res || {}
-    }
-  })
-  loading.value = false
-}
-
-let currentPage = ref(1)
-//更改页码
-function changePage(page) {
-  if (tabData.value.limit) {
-    typesearchFilter.offset = (page - 1) * tabData.value.limit //更新偏移量
-    currentPage.value = page //切换当前页码
-    getData() //获取广告数据
-  }
-}
-
-onMounted(() => {
-  getData()
-})
-</script>
-
-<style lang="scss" scoped>
-.contentList {
-  padding: 1em;
-  .page_style {
-    text-align: right;
-    margin-top: 1em;
-    background-color: var(--system-container-background);
-  }
-}
-</style>

+ 86 - 75
src/views/system/login.vue

@@ -1,16 +1,25 @@
 <template>
   <div class="container">
     <div class="box">
-      <img src="../../assets/images/logo2.jpg" alt="" class="logoImg">
+      <img src="../../assets/images/logo.png" alt="" class="logoImg" />
       <h1>{{ systemTitle }}</h1>
       <el-form class="form">
-        <el-input size="large" v-model="form.userName"  placeholder="用户名" type="text" maxlength="50">
+        <el-input size="large" v-model="form.userName" placeholder="用户名" type="text" maxlength="50">
           <template #prepend>
-            <el-icon  size="20"><User /></el-icon>
+            <el-icon size="20"><User /></el-icon>
           </template>
         </el-input>
 
-        <el-input size="large" ref="password"  @keyup.enter="submit" v-model="form.password" :type="passwordType" placeholder="密码" name="password" maxlength="50">
+        <el-input
+          size="large"
+          ref="password"
+          @keyup.enter="submit"
+          v-model="form.password"
+          :type="passwordType"
+          placeholder="密码"
+          name="password"
+          maxlength="50"
+        >
           <template #prepend>
             <el-icon size="20"><Lock /></el-icon>
           </template>
@@ -21,8 +30,8 @@
             </el-icon>
           </template>
         </el-input>
-        
-        <el-button type="primary" @click="submit" style="width: 100%;" size="large">登录</el-button>
+
+        <el-button type="primary" @click="submit" style="width: 100%" size="large">登录</el-button>
       </el-form>
     </div>
   </div>
@@ -41,53 +50,52 @@ export default defineComponent({
     const route = useRoute()
     const form = reactive({
       userName: '',
-      password: ''
+      password: '',
     })
     const passwordType = ref('password')
     const passwordTypeChange = () => {
-      passwordType.value === '' ? passwordType.value = 'password' : passwordType.value = ''
+      passwordType.value === '' ? (passwordType.value = 'password') : (passwordType.value = '')
     }
     const checkForm = () => {
       return new Promise((resolve, reject) => {
         if (form.userName === '') {
           ElMessage.warning({
             message: '用户名不能为空',
-            type: 'warning'
-          });
-          return;
+            type: 'warning',
+          })
+          return
         }
         if (form.password === '') {
           ElMessage.warning({
             message: '密码不能为空',
-            type: 'warning'
+            type: 'warning',
           })
-          return;
+          return
         }
         resolve(true)
       })
     }
     const submit = () => {
       checkForm().then(() => {
-        store.dispatch('user/getUserToken', form).then((res) => {
-          if(store.state.user.isGetToken){
+        store.dispatch('user/getUserToken', form).then(res => {
+          if (store.state.user.isGetToken) {
             ElMessage.success({
               message: store.state.user.loginMessage,
               type: 'success',
               showClose: true,
-              duration: 1000
+              duration: 1000,
             })
             store.dispatch('user/getUserInfo') //获取登录用户信息
             router.push(route.query.redirect || '/')
-          }else{
+          } else {
             ElMessage.error({
               message: store.state.user.loginMessage,
               type: 'error',
               showClose: true,
-              duration: 1000
+              duration: 1000,
             })
           }
         })
-
       })
     }
     return {
@@ -95,70 +103,73 @@ export default defineComponent({
       form,
       passwordType,
       passwordTypeChange,
-      submit
+      submit,
     }
-  }
+  },
 })
 </script>
 
 <style lang="scss" scoped>
-  .container {
-    position: relative;
-    width: 100vw;
-    height: 100vh;
-    background-color: #eef0f3;
-    .box {
-      width: 500px;
-      position: absolute;
-      left: 50%;
-      top: 50%;
-      background: white;
-      border-radius: 8px;
-      transform: translate(-50%, -50%);
-      height: 440px;
-      overflow: hidden;
-      box-shadow: 0 6px 20px 5px rgba(152, 152, 152, 0.1), 0 16px 24px 2px rgba(117, 117, 117, 0.14);
-      h1 {
-        margin-top: 20px;
-        text-align: center;
-      }
-      .logoImg{margin-top: 15px;margin-left: 15px;}
-      .form {
-        width: 80%;
-        margin: 40px auto 20px;
-        .el-input {
-          margin-bottom: 20px;
-        }
-        .password-icon {
-          cursor: pointer;
-          color: #409EFF;
-        }
+.container {
+  position: relative;
+  width: 100vw;
+  height: 100vh;
+  background-color: #eef0f3;
+  .box {
+    width: 500px;
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    background: white;
+    border-radius: 8px;
+    transform: translate(-50%, -50%);
+    height: 440px;
+    overflow: hidden;
+    box-shadow: 0 6px 20px 5px rgba(152, 152, 152, 0.1), 0 16px 24px 2px rgba(117, 117, 117, 0.14);
+    h1 {
+      margin-top: 20px;
+      text-align: center;
+    }
+    .logoImg {
+      height: 60px;
+      margin-top: 15px;
+      margin-left: 15px;
+    }
+    .form {
+      width: 80%;
+      margin: 40px auto 20px;
+      .el-input {
+        margin-bottom: 20px;
       }
-      .fixed-top-right {
-        position: absolute;
-        top: 10px;
-        right: 10px;
+      .password-icon {
+        cursor: pointer;
+        color: #409eff;
       }
     }
+    .fixed-top-right {
+      position: absolute;
+      top: 10px;
+      right: 10px;
+    }
   }
-  @media screen and ( max-width: 750px ) {
-    .container .box {
-      width: 100vw;
-      height: 100vh;
-      box-shadow: none;
-      left: 0;
-      top: 0;
-      transform: none;
-      display: flex;
-      flex-direction: column;
-      justify-content: center;
-      align-items: center;
-      h1 {
-        margin-top: 0;
-      }
-      .form {
-        
-      }
+}
+@media screen and (max-width: 750px) {
+  .container .box {
+    width: 100vw;
+    height: 100vh;
+    box-shadow: none;
+    left: 0;
+    top: 0;
+    transform: none;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    h1 {
+      margin-top: 0;
+    }
+    .form {
     }
   }
-</style>
+}
+</style>