Parcourir la source

商品管理菜单完成

zhangyuanyuan il y a 1 an
Parent
commit
b8612b671c

BIN
src/assets/images/AYN.png


+ 144 - 0
src/assets/images/auditProcess/auditprocess.vue

@@ -0,0 +1,144 @@
+/**
+ * 模板名称:审批流
+ * 作者:zhangb
+ * 时间:
+ * 依赖:
+ * 注意:
+ * props:
+ */
+<template>
+  <div class="">
+    <Row style="border-bottom:1px solid #eee;padding-bottom:5px;">
+      <Col span="5">
+        <div class="applyUser"><img src="../../assets/imgs/AYN.png" width="100%" height="100%" alt=""></div>
+      </Col>
+        <Col span="19">
+          <div class="applyFont">
+            <p style="font-size:16px;color:#000; margin-top:10px;">爱养牛审批流程</span>
+            <p style="color:green;">正常执行</p>
+          </div>
+        </Col>
+    </Row>
+    <!-- <div class="applyContent">
+      <p><span>审批编号:</span>NMGAYNKJ{{applyDetailForAudit.id}}</p>
+      <p><span>发起方:</span>{{applyDetailForAudit.orgName || '暂无'}}</p>
+      <p><span>申请主题:</span>{{applyDetailForAudit.auditTitle || '暂无'}}</p>
+      <p><span>申请备注:</span>{{applyDetailForAudit.comment || '暂无'}}</p>
+      <p><span>详情信息:</span>{{applyDetailForAudit.otherRequestOrgNames || '无'}}</p>
+    </div> -->
+    
+    <div class="applyflow">
+
+       <Timeline v-if="historyAndNowFlow.length > 0">
+        <TimelineItem v-for="(list,index) in historyAndNowFlow" :key="index">
+          <p style="margin-bottom:5px;color:orange;position:relative;">
+            <!-- 审核单位:{{list.orgName || '暂无'}} -->
+            <div v-show="list.endTime && list.auditStatusName==='同意'" class="statuslogo"><img src="../../assets/imgs/tg.png" alt="" width="100%" height="100%"></div>  <!--印章-->
+            <div v-show="list.endTime && list.auditStatusName==='不同意'" class="statuslogo"><img src="../../assets/imgs/jj.png" alt="" width="100%" height="100%"></div>  <!--印章-->
+          </p>
+          <Row style="color:#999;margin:10px 0px;">
+            <Col span="3"><div class="flowauditer"><img :src="list.auditTypeName === '复核' ? fhImg:jbImg" width="100%" height="100%" alt=""></div></Col>
+            <Col span="17">
+              <p>审批人员:{{list.userName}}</p>
+              <p v-show="list.endTime">审批时间:{{list.endTime | date("%F") || '--'}}</p>
+              <p>审批状态:<span v-if="list.endTime && list.auditStatusName==='同意'" style="color:green;">已同意</span> 
+                          <span v-if="list.endTime && list.auditStatusName==='不同意'" style="color:red;">已拒绝</span>
+                          <span v-if="!list.endTime && !list.auditStatusName" style="color:orange;">待审核...</span>
+              </p>
+              <p v-show="list.comment">审批备注:{{list.comment}}</p>
+            </Col>
+            <Col span="4"><Tag :color="list.auditTypeName === '经办'? 'blue':'green'">{{list.auditTypeName}}</Tag></Col>
+          </Row>
+        </TimelineItem>
+      </Timeline>
+
+      <div v-if="historyAndNowFlow.length === 0" style="padding:3em 0;text-align:center;">暂无审批历史</div>
+
+      <Row class="bottomOption" v-show="displayBtn">
+        <Col span="24">
+          <Input v-model="auditnNote" placeholder="填写审批备注" style="width: 280px;border-radius: 0px !important;" />
+          <Button type="success" class="btnStyle" @click="$emit('agree-audit',1,auditnNote)">同 意</Button>
+          <Button type="error" class="btnStyle" @click="$emit('refuse-audit',2,auditnNote)">拒 绝</Button>
+        </Col>
+      </Row>
+ 
+
+    </div>
+
+
+  </div>
+</template>
+<script>
+export default {
+  name: '',
+  props:{
+    displayBtn:{      //是否显示审核操作按钮
+      type:Boolean,
+      default:true
+    },
+
+    historyAndNowFlow:{  //审批流历史及当前
+      type:Array,
+      default:()=>{
+        return []
+      }
+    },
+  },
+  data(){
+    return {
+      auditnNote:'', //审批备注
+      jbImg:require('../../assets/imgs/jb.jpg'), //经办头像
+      fhImg:require('../../assets/imgs/fh.jpg'), //复核头像
+    }
+  },
+
+  mounted(){
+  },
+  
+}
+</script>
+<style lang="less" scoped>
+.applyUser{
+  // border:1px solid #000;
+  width:5em; height: 5em;
+  border-radius: 50%;
+}
+.applyFont{
+  height: 5em;
+}
+.applyContent{
+  margin-top: 8px;
+  padding-bottom:10px; 
+  color: #000;
+  font-size: 13px;
+  border-bottom:1px solid #eee;
+}
+.applyContent span{
+  color: #999;
+}
+.applyflow{
+  margin: 10px 0px;
+  .flowauditer{
+    // border: 1px solid #000;
+    width: 3em; height: 3em;
+  }
+}
+.bottomOption{
+  background-color: #fff;
+  padding: 10px 0;
+  position: fixed;
+  bottom: 0px;
+}
+.btnStyle{
+  border-radius: 0px !important;
+}
+.statuslogo{
+  // border:1px solid #000;
+  width:60px;
+  height:60px;
+  transform:rotate(30deg);
+  position: absolute;
+  left: 150px;
+}
+
+</style>

BIN
src/assets/images/fh.jpg


BIN
src/assets/images/jb.jpg


BIN
src/assets/images/jj.png


BIN
src/assets/images/tg.png


+ 150 - 0
src/components/auditProcess/auditprocess.vue

@@ -0,0 +1,150 @@
+/**
+ * 模板名称:审批流
+ * 作者:zhangb
+ * 时间:
+ * 依赖:
+ * 注意:
+ * props:
+ */
+<template>
+  <div class="">
+    <Row style="border-bottom:1px solid #eee;padding-bottom:5px;">
+      <Col span="5">
+        <div class="applyUser"><img src="../../assets/images/AYN.png"  style="width: 100%;height:100%" alt=""></div>
+      </Col>
+      <Col span="19">
+        <div class="applyFont">
+          <p style="font-size:16px;color:#000; margin-top:10px;">爱养牛审批流程</p>
+          <p style="color:green;">正常执行</p>
+        </div>
+      </Col>
+    </Row>
+    <div class="applyflow">
+       <Timeline v-if="historyAndNowFlow.length > 0">
+        <TimelineItem v-for="(list,index) in historyAndNowFlow" :key="index">
+          <p style="margin-bottom:5px;color:orange;position:relative;">
+            <!-- 审核单位:{{list.orgName || '暂无'}} -->
+            <div v-show="list.endTime && list.auditStatusName==='同意'" class="statuslogo">
+              <img src="../../assets/images/tg.png" alt="" style="width: 100%;height:100%"></div>  <!--印章-->
+            <div v-show="list.endTime && list.auditStatusName==='不同意'" class="statuslogo">
+              <img src="../../assets/images/jj.png" alt="" style="width: 100%;height:100%"></div>  <!--印章-->
+          </p>
+          <Row style="color:#999;margin:10px 0px;">
+            <Col span="3"><div class="flowauditer"><img :src="list.auditTypeName === '复核' ? fhImg:jbImg" style="width: 100%;height:100%" alt=""></div></Col>
+            <Col span="17">
+              <p>审批人员:{{list.userName}}</p>
+              <p v-show="list.endTime">审批时间:{{formatData(list.endTime)|| '--'}}</p>
+              <p>审批状态:<span v-if="list.endTime && list.auditStatusName==='同意'" style="color:green;">已同意</span> 
+                          <span v-if="list.endTime && list.auditStatusName==='不同意'" style="color:red;">已拒绝</span>
+                          <span v-if="!list.endTime && !list.auditStatusName" style="color:orange;">待审核...</span>
+              </p>
+              <p v-show="list.comment">审批备注:{{list.comment}}</p>
+            </Col>
+            <Col span="4"><Tag :color="list.auditTypeName === '经办'? 'blue':'green'">{{list.auditTypeName}}</Tag></Col>
+          </Row>
+        </TimelineItem>
+      </Timeline>
+
+      <div v-if="historyAndNowFlow.length === 0" style="padding:3em 0;text-align:center;">暂无审批历史</div>
+
+      <Row class="bottomOption" v-show="displayBtn">
+        <Col span="24">
+          <Input v-model="auditnNote" placeholder="填写审批备注" style="width: 280px;border-radius: 0px !important;" />
+          <Button type="success" class="btnStyle" @click="$emit('agree-audit',1,auditnNote)">同 意</Button>
+          <Button type="error" class="btnStyle" @click="$emit('refuse-audit',2,auditnNote)">拒 绝</Button>
+        </Col>
+      </Row>
+    </div>
+  </div>
+</template>
+<script>
+import { defineComponent, onMounted, ref ,getCurrentInstance,toRefs} from 'vue'
+import { Timeline,TimelineItem } from 'view-ui-plus'
+import moment from 'moment'
+
+export default defineComponent({
+  components:{
+  },
+  props:{
+    displayBtn:{      //是否显示审核操作按钮
+      type:Boolean,
+      default:true
+    },
+
+    historyAndNowFlow:{  //审批流历史及当前
+      type:Array,
+      default:()=>{
+        return []
+      }
+    },
+  },
+  setup(props) {
+    let {proxy} = getCurrentInstance();
+    const token = localStorage.aynUserToken
+    const {historyAndNowFlow,displayBtn} = toRefs(props)
+
+    let auditnNote = ref('') //审批备注
+    let jbImg = require('../../assets/images/jb.jpg') //经办头像
+    let fhImg = require('../../assets/images/fh.jpg') //复核头像
+
+    // 格式化日期
+    function formatData(date) {
+      return moment(date).format("YYYY-MM-DD");
+    }
+
+    onMounted(()=>{
+
+    })
+
+    return {
+      auditnNote,jbImg,fhImg,Timeline,TimelineItem,historyAndNowFlow,displayBtn,formatData
+    }
+  },
+})
+</script>
+
+<style lang="scss" scoped>
+.applyUser{
+  // border:1px solid #000;
+  width:5em; height: 5em;
+  border-radius: 50%;
+}
+.applyFont{
+  height: 5em;
+}
+.applyContent{
+  margin-top: 8px;
+  padding-bottom:10px; 
+  color: #000;
+  font-size: 13px;
+  border-bottom:1px solid #eee;
+}
+.applyContent span{
+  color: #999;
+}
+.applyflow{
+  margin: 10px 0px;
+  .flowauditer{
+    // border: 1px solid #000;
+    width: 3em; height: 3em;
+  }
+}
+.bottomOption{
+  background-color: #fff;
+  padding: 10px 0;
+  position: fixed;
+  bottom: 0px;
+}
+.btnStyle{
+  border-radius: 0px !important;
+}
+.statuslogo{
+  // border:1px solid #000;
+  width:60px;
+  height:60px;
+  transform:rotate(30deg);
+  position: absolute;
+  left: 150px;
+}
+
+</style>

+ 47 - 1
src/utils/system/filters.js

@@ -277,7 +277,53 @@ function voucherStatus(val) {
     }
   }
 
+//审批商品状态
+function auditstatus(val) {
+    switch (val) {
+        case 1:
+            return '同意'
+        case 2:
+            return '不同意'
+    }
+}
+
+// 商品类型
+function shoptypeCode(val) {
+    switch (val) {
+        case 1:
+            return '集采'
+        case 2:
+            return '统采'
+        case 3:
+            return '爆品超市'
+        case 4:
+            return '自由市场'
+    }
+}
+
+//审核当前环节
+function auditType(val) {
+    switch (val) {
+        case 1:
+            return '经办'
+        case 2:
+            return '复核'
+    }
+}
+
+//商品预警模式
+ function warningStatus(val) {
+    switch (val) {
+        case 1:
+            return '钉钉提醒'
+        case 2:
+            return '自动下架'
+        default:
+            return '未设置'
+    }
+}
+
 export{
-  toPercent,orderStatus,payType,payStatus,payModel,tranType,voucherType,reportStatus,sendWayDisplayInt,afterSaleStatus,voucherStatus,reviewStatus,instalType,InstallmentType,itemStatus
+  toPercent,orderStatus,payType,payStatus,payModel,tranType,voucherType,reportStatus,sendWayDisplayInt,afterSaleStatus,voucherStatus,reviewStatus,instalType,InstallmentType,itemStatus,auditstatus,shoptypeCode,auditType,warningStatus
 }
 

+ 14 - 26
src/views/manager/ecommerceManager/logoffManage.vue

@@ -204,15 +204,15 @@
     </Form>
     <div v-show="itemChange.isAdmin == 0" align="left"><span style="color: red;">注意:当前账号为管理员身份,若此账号所在组织下仅剩最后一位管理员,则注销账号会一并将组织注销,请谨慎操作。目前此组织下有{{itemChange.adminTotal || 0}}名管理员,{{itemChange.noAdminTotal || 0}}名非管理员。</span></div>
     <div v-show="itemChange.isAdmin == 1" align="left"><span style="color: red;">注意:点击确定按钮,账户将被注销,请谨慎操作。</span></div>
-    <div slot="footer" style="text-align:center;">
-      <Button type="submit" @click="doModifyApply(itemChange)">拒绝</Button>
+    <div slot="footer" style="text-align:center;margin-top:10px">
+      <Button type="submit" @click="doModifyApply(itemChange)">拒绝</Button>&nbsp;
       <Button type="primary" @click="passIn(itemChange)" >通过</Button>
     </div>
 	</Modal>
-	
-    <el-dialog :visible.sync="dialogVisible" size="tiny">
-      <img width="100%" :src="dialogImageUrl" alt="">
-    </el-dialog>
+
+  <el-dialog :visible.sync="dialogVisible" size="tiny">
+    <img width="100%" :src="dialogImageUrl" alt="">
+  </el-dialog>
   </div>
 </template>
 
@@ -342,15 +342,12 @@ export default defineComponent({
             userCancelId:item.id,reviewStatus:1, image:item.image, orgId:item.orgId, isAdmin:item.isAdmin, remarks:item.remarks
           }).then(res => {
             if (res.code == '101') {
-              Message({
-                type: 'success',
-                message: '操作成功'
-              })
+              Message.success('操作成功')
               initData()
-              refuseReasonModel.value=false
+              refuseReasonModel.value = false
             } else {
               Message.error(res.message || "操作失败")
-              refuseReasonModel.value=false
+              refuseReasonModel.value = false
             }
           })
         }
@@ -362,18 +359,12 @@ export default defineComponent({
 			  userCancelId:item.id,reviewStatus:2, image:item.image, orgId:item.orgId, isAdmin:item.isAdmin, remarks:item.remarks,
 			}).then(res => {
 				if(res.code == 101){
-				  Message({
-				    type: 'success',
-				    message: '操作成功'
-				  })
+				  Message.success('操作成功')
 				  initData()
-				  refuseReasonModel.value=false
+				  refuseReasonModel.value = false
 				}else{
-				  Message({
-				    type: 'error',
-				    message: '操作失败'
-				  })
-				  refuseReasonModel.value=false
+				  Message.error('操作失败')
+				  refuseReasonModel.value = false
 				}
 			})
     }
@@ -386,10 +377,7 @@ export default defineComponent({
           itemChange.value.adminTotal = res.data.adminTotal
           itemChange.value.noAdminTotal = res.data.noAdminTotal
         }else{
-          Message({
-            type: 'error',
-            message: '操作失败'
-          })
+          Message.error('操作失败')
         } 				
       })
 	  }

+ 4 - 3
src/views/manager/orderManager/orderList.vue

@@ -110,14 +110,14 @@
       <el-table-column label="付款方式" width="85">
         <template #default="scope">
           <span>
-            {{scope.row.payModel | payModel}}
+            {{payModel(scope.row.payModel)}}
           </span>
         </template>
       </el-table-column>
       <el-table-column label="订单状态" width="85">
         <template #default="scope">
           <span>
-            {{scope.row.orderStatus | orderStatus}}
+            {{orderStatus(scope.row.orderStatus)}}
           </span>
         </template>
       </el-table-column>
@@ -236,6 +236,7 @@ import {manager,order,item} from '@/request/api'
 import { Message,Modal } from 'view-ui-plus'
 import { useRouter } from 'vue-router'
 import moment from 'moment'
+import {orderStatus,payModel} from '@/utils/system/filters'
 
 export default defineComponent({
   components:{
@@ -417,7 +418,7 @@ export default defineComponent({
     })
 
     return {
-      orderList,tableLoading,remarkModel,current,searchFilter,moreFilter,modalLoading,confirmModel,itemChange,orderNumber,voucherInfo,VoucherModel,InvoiceModel,accountInvoice,accountList,filterProList,
+      orderList,tableLoading,remarkModel,current,searchFilter,moreFilter,modalLoading,confirmModel,itemChange,orderNumber,voucherInfo,VoucherModel,InvoiceModel,accountInvoice,accountList,filterProList,orderStatus,payModel,
       GetOneClassifysList,lookInvoice,doConfirmRecive,confirmRecive,doModifyApply,viewVoucher,putRemark,searchOrder,changeEndTime,changeStartTime,changePage,getData,goOrderDetail,formatData
     }
   }

+ 95 - 166
src/views/manager/shopItemManager/auditItemsManage.vue

@@ -6,79 +6,45 @@
 
 <template>
   <div class="auditItemsManage">
-    <!-- 搜索 -->
-    <Row>
-      <Col span="6">
-        <Input placeholder="请输入昵称进行搜索" v-model="searchFilter.nickName" @on-change="getData">
-        </Input>
+    <!-- 按商品号搜索 -->
+    <Row :gutter="10">
+      <Col span="10">
+        <Select v-model="searchFilter.typeCode" filterable remote placeholder="" @on-change="searchItem">
+            <Option v-for="(option, index) in typeList" :value="option.id" :key="index">{{option.name}}</Option>
+        </Select>
       </Col>
-    </Row>
-    <br>
-    <br>
-    <Row type="flex" align="middle" justify="end">
-      <Col span="3">
-        <Button long @click="addUser">
-          新增用户
-        </Button>
+      <Col span="6">
+          <Button type="primary" icon="ios-search" @click="searchItem">搜索</Button>
       </Col>
     </Row>
-    <br>
+    <br />
     <!-- 数据展示 -->
-    <el-table  :data="userList.data" v-loading="dataLoading">
-      <el-table-column label="用户名" min-width="40" align="center">
-        <template #default="scope">
-          <span>
-            {{scope.row.userName ||'无'}}
-          </span>
-        </template>
-      </el-table-column>
-      <el-table-column label="昵称"  min-width="80" align="center">
-        <template #default="scope">
-          <span>
-            {{scope.row.nickName ||'无'}}
-          </span>
-        </template>
-      </el-table-column>
-    
-      <el-table-column label="操作" fixed="right" align="center">
-        <template #default="scope">
-          <!--按钮-->
-            <Button type="warning" size="small" @click.native="$jump('/1001030500?id='+scope.row.id+'&nickName='+scope.row.nickName)">用户分配</Button>&nbsp;
-            <Button type="primary" size="small" @click.native="editUserModel(scope.row)">修改</Button>&nbsp;
-            <Button type="error" size="small" @click.native="delBtn(scope.row.id)">删除</Button>
-        </template>
-      </el-table-column>
+    <el-table class="el-table" :data="itemList"  v-loading="dataloading" >
+    <el-table-column type="index" width="100" label="序号" align="center">
+    </el-table-column>
+    <el-table-column label="审核项名称" min-width="200"  align="center">
+      <template #default="scope">
+        {{scope.row.name || '无名称'}}
+      </template>
+    </el-table-column>
+    <el-table-column label="是否需要审核" fixed="right" align="center">
+      <template #default="scope">
+        <el-switch style="display: block" v-model="scope.row.status" active-color="#13ce66" active-text="是" inactive-text="否" @change='changeStatus($event,scope.row)'></el-switch>
+      </template>
+    </el-table-column>
     </el-table>
     <!-- 分页 -->
     <div style="margin: 10px;overflow: hidden">
-        <div style="float: right;">
-            <Page show-elevator :total="parseInt(userList.total)" :page-size="userList.limit" :current="current" @on-change="changePage"></Page>
-        </div>
-    </div>
-    <!-- 修改用户信息 -->
-    <Modal v-model="showEdit" :title="modelTitle" :ok-text="editSub" @on-ok="submit('editUser')" @on-cancel="$refs['editUser'].resetFields()">
-      <Form ref="editUser" :model="itemForm" :rules="itemValidator" :label-width="80">
-        <Form-item label="用户名" prop="userName">
-          <Input v-model="itemForm.userName" :disabled="isEdit" placeholder="请输入用户名"></Input>
-        </Form-item>
-        <Form-item label="昵称" prop="nickName">
-          <Input v-model="itemForm.nickName" placeholder="请输入昵称"></Input>
-        </Form-item>
-        <Form-item label="密码" prop="password">
-          <Input v-model="itemForm.password" placeholder="请输入密码"></Input>
-        </Form-item>
-      </Form>
-      <div slot="footer">
-        <Button type="primary" @click="saveUser">保存</Button>
-        <Button  @click="reset('editUser')" style="margin-left: 8px">重置</Button>
+      <div style="float: right;">
+        <Page show-elevator :total="parseInt(totalNum)" :page-size="searchFilter.limit" :current.sync="current" @on-change="changePage"></Page>
       </div>
-    </Modal>
+    </div>
   </div>
 </template>
 
 <script>
 import { defineComponent, onMounted, ref ,reactive,getCurrentInstance} from 'vue'
-import {manager} from '@/request/api'
+import {item } from '@/request/api'
 import { Message,Modal } from 'view-ui-plus'
 
 export default defineComponent({
@@ -89,130 +55,92 @@ export default defineComponent({
     let {proxy} = getCurrentInstance();
     const token = localStorage.aynUserToken
 
-    let isEdit = ref(false)               //是否为修改用户
-    let showEdit = ref(false)               //是否显示 新建/修改用户 弹窗
-    let modelTitle = ref('')              //新建/修改用户 弹窗的标题
-    let editSub = ref('')                  //新建/修改弹窗 提交按钮文字
-    let itemForm = reactive({                   
-        id: '',
-        userName: '',
-        nickName: '',
-        password: '',
-    }) 
-    let addUserInfo = reactive({})               
-    let itemValidator = { //第一步内容验证
-          userName: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-          nickName: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-          password: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-
-      }
-    let dataLoading = ref(false)
-    let userList = ref({})              //管理人员列表
-    let current = ref(1)             //当前页码
-    let searchFilter = reactive({
-        nickName: '',            //昵称
-        offset: 0,               //偏移量
+    let itemList = ref([])
+    let totalNum = ref(0)                    //商品数据
+    let dataloading = ref(false)    //是否在加载中
+    let current = ref(1)      //当前页码
+    let searchFilter = ref({
+        typeCode:'2',        
+        offset: 0,
+        limit:10
     })
+    let offModel = ref(false) //查看弹框
+    let warnStatus = ref(1)    //设置预警方式
+    let loadIn = ref(false)       //是否在请求接口状态
+    let rowInfo = ref({})             //保存当前行数据信息
+    let typeList = ref([
+        {name:'集采市场管理',id:'1'},
+        {name:'统采市场管理',id:'2'},
+        {name:'自由市场管理',id:'4'},
+        {name:'营销商品管理',id:'3'},
+        {name:'牛客市场管理',id:'8'},
+    ])
+    let switchValue = ref(true)
 
-
-
-    //获取广告数据
-    function getData(){
-      dataLoading.value = true;
-      manager.GetUserList({
-        ...searchFilter
-      }).then((res) => {
-        if(res.code == '101') {
-           userList.value = res
-        }else {
-          this.$Message.error(res.message)
-        }
-      }).catch((err) => {
-          this.$Message.error(err)
+    //获取商品数据
+    async function getData(){
+      itemList.value = []
+      dataloading.value = true;
+      await item.getAuditLists({
+          ...searchFilter.value
+      }).then(res =>{
+          if (res.code==101) {
+            itemList.value = res.data || []
+            totalNum.value = res.total || 0;
+            itemList.value.forEach((list) => {
+              if(list.status == 1){
+                  list.status = true;
+              }else{
+                  list.status = false;
+              }
+            })
+          }else{
+            Message.error(res.message)
+          }
       })
-			dataLoading.value = false;
+      dataloading.value = false;
     }
-    
+
     //更改页码
     function changePage (page) {
-      let userlist = userList.value
-      if(userlist.limit){
-        searchFilter.offset = (page -1) *  userlist.limit  //更新偏移量
+      let itemlist = itemList.value
+      if(itemlist.limit){
+        searchFilter.value.offset = (page -1) *  itemlist.limit  //更新偏移量
         current.value = page  //切换当前页码
-        getData()       //获取广告数据
+        getData()       //获取商品数据
       }
+      searchFilter.value.offset = (page - 1) * searchFilter.value.limit
+      getData()
     }
-
-    //显示新增用户
-    function addUser() {
-      this.$refs['editUser'].resetFields()
-      isEdit.value = false //新增用户
-      editSub.value = '提交'
-      modelTitle.value = '新增用户'
-      itemForm = Object.assign(itemForm, {
-                userName: '',
-                nickName: '',
-                password: '',
-              })
-      showEdit.value = true //显示弹窗
-    }
-    //显示修改用户
-    function editUserModel(data) {
-      this.$refs['editUser'].resetFields()
-      isEdit.value = true //修改用户
-      editSub.value = '保存'
-      modelTitle.value = '修改用户'
-      itemForm = _.cloneDeep(data) //需要修改的用户
-      showEdit.value = true //显示弹窗
+    
+    /*=====搜索商品功能=====*/
+    function searchItem(){
+      searchFilter.value.offset= 0
+      searchFilter.value.limit= 10
+      current.value = 1
+      getData()
     }
 
-    //保存用户
-    function saveUser() {
-      this.$refs['editUser'].validate(async(valid) => {
-        if (valid) { //验证成功
-          if(!isEdit.value){ //判断是否是新增,还是修改,如果是新增的话,则传到用一个对象保存数据,传参不同
-            addUserInfo = {}
-            addUserInfo.userName = itemForm.userName ? itemForm.userName : ''
-            addUserInfo.nickName = itemForm.nickName ? itemForm.nickName : ''
-            addUserInfo.password = itemForm.password ? itemForm.password : ''
-          }else{
-            addUserInfo = {}
-          }
-          let save = isEdit.value ? await manager.UpdateUser(itemForm) : await manager.AddNewUser(addUserInfo) //修改和保存调用不同接口
-          if (save.code === 101) {
-            // this.editUser = save.data //获取新增用户的属性
-            this.$Message.success(save.message) //保存后提示的消息
-            getData() //更新用户列表数据
-            showEdit.value = false
-          } else {
-            this.$Message.error(save.message)
-          }
-        } else { //验证失败
-          this.$Message.error('提交失败!')
-        }
+    async function changeStatus($event,rowData){
+      await item.updateBySkuId({
+        id:rowData.id,
+        status:$event == true ? 1:0,
+        markName:rowData.markName
+      }).then(res =>{
+        if(res.code == 101){
+          Message.success(res.message)
+          getData()
+        }  
       })
-    }
-
+    }  
 
     onMounted(()=>{
       getData()
     })
 
     return {
-      isEdit,showEdit,modelTitle,editSub,itemForm,addUserInfo,itemValidator,dataLoading,userList,current,searchFilter,
-      getData,changePage,addUser,editUserModel,saveUser
+      itemList,totalNum,dataloading,current,searchFilter,offModel,warnStatus,loadIn,rowInfo,typeList,switchValue,
+      getData,changePage,searchItem,changeStatus,
     }
   },
 })
@@ -221,5 +149,6 @@ export default defineComponent({
 <style lang="scss" scoped>
 .auditItemsManage{
   padding: 1em;
+  background-color: #fff;
 }
 </style>

+ 235 - 146
src/views/manager/shopItemManager/auitMatters.vue

@@ -1,77 +1,97 @@
 /**
  * 模板名称:已审事项
  * 作者:zhangyy
- * 时间:2023-09-22
+ * 时间:2023-10-13
  */
 
 <template>
   <div class="auitMatters">
-    <!-- 搜索 -->
-    <Row>
-      <Col span="6">
-        <Input placeholder="请输入昵称进行搜索" v-model="searchFilter.nickName" @on-change="getData">
-        </Input>
+    <!-- 按商品号搜索 -->
+    <Row :gutter="10">
+      <Col span="5">
+        <Input placeholder="请输入商品名称" v-model="searchFilter.itemName" clearable/>
       </Col>
-    </Row>
-    <br>
-    <br>
-    <Row type="flex" align="middle" justify="end">
-      <Col span="3">
-        <Button long @click="addUser">
-          新增用户
-        </Button>
+      <Col span="4">
+        <DatePicker type="date" placeholder="审批时间开始日期"
+          format="yyyy-MM-dd"
+          confirm
+          v-model="searchFilter.startTime"
+          @on-change="changeStartTime"/>
+      </Col>
+      <Col>-</Col>
+      <Col span="4">
+        <DatePicker type="date" placeholder="审批时间截止日期"
+        format="yyyy-MM-dd"
+        confirm v-model="searchFilter.endTime"
+        @on-change="changeEndTime"
+        />
+      </Col>
+      <Col span="6">
+        <Button type="primary" icon="ios-search" @click="searchItem">商品搜索</Button>
       </Col>
     </Row>
-    <br>
+    <br />
     <!-- 数据展示 -->
-    <el-table  :data="userList.data" v-loading="dataLoading">
-      <el-table-column label="用户名" min-width="40" align="center">
+    <el-table class="el-table" :data="itemList"  v-loading="dataloading"  v-if="itemList.length>0">
+      <el-table-column label="商品名称" width="130" align="center">
+        <template #default="scope">
+          <a @click="viewItem(scope.row.id)">{{scope.row.itemName || '无名称'}}</a>
+        </template>
+      </el-table-column>
+      <el-table-column label="分类" min-width="180">
+        <template #default="scope">
+           {{ scope.row.classifyOne}}/{{scope.row.classifyTwo}}/{{scope.row.classifyThree}}
+        </template>
+      </el-table-column>
+      <el-table-column label="审批商品状态" >
         <template #default="scope">
           <span>
-            {{scope.row.userName ||'无'}}
+            {{ auditstatus(scope.row.auditStatus)}}
           </span>
         </template>
       </el-table-column>
-      <el-table-column label="昵称"  min-width="80" align="center">
+      <el-table-column label="商品类型" width="120">
         <template #default="scope">
           <span>
-            {{scope.row.nickName ||'无'}}
+            {{shoptypeCode(scope.row.typeCode)}}
           </span>
         </template>
       </el-table-column>
-    
-      <el-table-column label="操作" fixed="right" align="center">
+      <el-table-column label="当前环节" width="120">
+        <template #default="scope">
+          <span>
+            {{auditType(scope.row.auditType ) }}
+          </span>
+        </template>
+      </el-table-column>
+      <el-table-column label="审批时间" width="150">
+        <template #default="scope">
+          <span>
+            {{formatData(scope.row.endTime )}}
+          </span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" fixed="right" width="130">
         <template #default="scope">
           <!--按钮-->
-            <Button type="warning" size="small" @click.native="$jump('/1001030500?id='+scope.row.id+'&nickName='+scope.row.nickName)">用户分配</Button>&nbsp;
-            <Button type="primary" size="small" @click.native="editUserModel(scope.row)">修改</Button>&nbsp;
-            <Button type="error" size="small" @click.native="delBtn(scope.row.id)">删除</Button>
+            <Button type="primary" size="small" @click="checkCurrent(scope.row.auditGroup)">查看审批流程</Button>
         </template>
       </el-table-column>
     </el-table>
     <!-- 分页 -->
     <div style="margin: 10px;overflow: hidden">
-        <div style="float: right;">
-            <Page show-elevator :total="parseInt(userList.total)" :page-size="userList.limit" :current="current" @on-change="changePage"></Page>
-        </div>
-    </div>
-    <!-- 修改用户信息 -->
-    <Modal v-model="showEdit" :title="modelTitle" :ok-text="editSub" @on-ok="submit('editUser')" @on-cancel="$refs['editUser'].resetFields()">
-      <Form ref="editUser" :model="itemForm" :rules="itemValidator" :label-width="80">
-        <Form-item label="用户名" prop="userName">
-          <Input v-model="itemForm.userName" :disabled="isEdit" placeholder="请输入用户名"></Input>
-        </Form-item>
-        <Form-item label="昵称" prop="nickName">
-          <Input v-model="itemForm.nickName" placeholder="请输入昵称"></Input>
-        </Form-item>
-        <Form-item label="密码" prop="password">
-          <Input v-model="itemForm.password" placeholder="请输入密码"></Input>
-        </Form-item>
-      </Form>
-      <div slot="footer">
-        <Button type="primary" @click="saveUser">保存</Button>
-        <Button  @click="reset('editUser')" style="margin-left: 8px">重置</Button>
+      <div style="float: right;">
+        <Page show-elevator :total="parseInt(totalNum)" :page-size="searchFilter.limit" :current.sync="current" @on-change="changePage"></Page>
       </div>
+    </div>
+    <!-- 审批历史 -->
+    <Modal v-model="offModel" title="审批详情">
+      <audit-process :historyAndNowFlow="historyAndNowFlow" :displayBtn="false"></audit-process>
+      <template #footer>
+        <div style="text-align:center;">
+          <Button @click="offModel = false">关闭页面</Button>
+        </div>
+      </template>
     </Modal>
   </div>
 </template>
@@ -80,139 +100,123 @@
 import { defineComponent, onMounted, ref ,reactive,getCurrentInstance} from 'vue'
 import {manager} from '@/request/api'
 import { Message,Modal } from 'view-ui-plus'
+import { useRoute } from 'vue-router'
+import { auditstatus,shoptypeCode,auditType} from '@/utils/system/filters'
+import moment from 'moment'
+import auditProcess from '@/components/auditProcess/auditprocess'
 
 export default defineComponent({
   components:{
-    
+    auditProcess
   },
   setup() {
     let {proxy} = getCurrentInstance();
     const token = localStorage.aynUserToken
 
-    let isEdit = ref(false)               //是否为修改用户
-    let showEdit = ref(false)               //是否显示 新建/修改用户 弹窗
-    let modelTitle = ref('')              //新建/修改用户 弹窗的标题
-    let editSub = ref('')                  //新建/修改弹窗 提交按钮文字
-    let itemForm = reactive({                   
-        id: '',
-        userName: '',
-        nickName: '',
-        password: '',
-    }) 
-    let addUserInfo = reactive({})               
-    let itemValidator = { //第一步内容验证
-          userName: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-          nickName: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-          password: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-
-      }
-    let dataLoading = ref(false)
-    let userList = ref({})              //管理人员列表
-    let current = ref(1)             //当前页码
-    let searchFilter = reactive({
-        nickName: '',            //昵称
-        offset: 0,               //偏移量
+    let route = useRoute()
+    let mohuloading = ref(false) //模糊搜索加载
+    let pageName = ref('')
+    let shopList = ref([]) //供应商列表
+    let itemList = ref([])
+    let totalNum = ref(0)                    //商品数据
+    let dataloading = ref(false)    //是否在加载中
+    let current =ref(1)       //当前页码
+    let searchFilter = ref({
+      startTime: '',
+      endTime:'',     
+      itemName:'',        
+      offset: 0,
+      limit:10
     })
+    let offModel = ref(false) //查看弹框
+    let detailData = ref('')
+    let historyAndNowFlow = ref([])
+    let waitAuditDetailData = ref({})
 
 
-
-    //获取广告数据
-    function getData(){
-      dataLoading.value = true;
-      manager.GetUserList({
-        ...searchFilter
-      }).then((res) => {
-        if(res.code == '101') {
-           userList.value = res
-        }else {
-          this.$Message.error(res.message)
+    function viewItem(id){
+      // $open('shop/index.html#/item','itemId='+scope.row.id)
+      let env = process.env.NODE_ENV
+      if (env === 'development') {
+        window.open('http://test.aiyangniu.net/dist/views/shop/index.html#/item?itemId='+id)
+      }
+          
+      if(env === 'testing'){
+          window.open('http://test.aiyangniu.net/dist/views/shop/index.html#/item?itemId='+id)
+      }
+      if(env === 'production'){
+          window.open('https://shop.aiyangniu.cn/dist/views/shop/index.html#/item?itemId='+id)
+      }
+    }
+    
+    //获取商品数据
+    async function getData(){
+      itemList.value = []
+      dataloading.value = true;
+      await manager.getEndAuditProcess({
+        ...searchFilter.value
+      }).then(res =>{
+        if (res.code==101) {
+            itemList.value = res.data || []
+            totalNum.value = res.total || 0
+        }else{
+        	Message.error(res.message)
         }
-      }).catch((err) => {
-          this.$Message.error(err)
       })
-			dataLoading.value = false;
+      dataloading.value = false;
     }
-    
+
     //更改页码
     function changePage (page) {
-      let userlist = userList.value
-      if(userlist.limit){
-        searchFilter.offset = (page -1) *  userlist.limit  //更新偏移量
+      let itemlist = itemList.value
+      if(itemlist.limit){
+        searchFilter.value.offset = (page -1) *  itemlist.limit  //更新偏移量
         current.value = page  //切换当前页码
-        getData()       //获取广告数据
+        getData()       //获取商品数据
       }
+      searchFilter.value.offset = (page - 1) * searchFilter.value.limit
+      console.log(current.value)
+      getData()
     }
 
-    //显示新增用户
-    function addUser() {
-      this.$refs['editUser'].resetFields()
-      isEdit.value = false //新增用户
-      editSub.value = '提交'
-      modelTitle.value = '新增用户'
-      itemForm = Object.assign(itemForm, {
-                userName: '',
-                nickName: '',
-                password: '',
-              })
-      showEdit.value = true //显示弹窗
+    /*=====搜索商品功能=====*/
+    function searchItem(){
+      getData()
     }
-    //显示修改用户
-    function editUserModel(data) {
-      this.$refs['editUser'].resetFields()
-      isEdit.value = true //修改用户
-      editSub.value = '保存'
-      modelTitle.value = '修改用户'
-      itemForm = _.cloneDeep(data) //需要修改的用户
-      showEdit.value = true //显示弹窗
+
+    //更改开始时间
+    function changeStartTime(time){
+      searchFilter.value.startTime = time
+    }
+    //更改截止时间
+    function changeEndTime(time){
+      searchFilter.value.endTime = time
     }
 
-    //保存用户
-    function saveUser() {
-      this.$refs['editUser'].validate(async(valid) => {
-        if (valid) { //验证成功
-          if(!isEdit.value){ //判断是否是新增,还是修改,如果是新增的话,则传到用一个对象保存数据,传参不同
-            addUserInfo = {}
-            addUserInfo.userName = itemForm.userName ? itemForm.userName : ''
-            addUserInfo.nickName = itemForm.nickName ? itemForm.nickName : ''
-            addUserInfo.password = itemForm.password ? itemForm.password : ''
-          }else{
-            addUserInfo = {}
-          }
-          let save = isEdit.value ? await manager.UpdateUser(itemForm) : await manager.AddNewUser(addUserInfo) //修改和保存调用不同接口
-          if (save.code === 101) {
-            // this.editUser = save.data //获取新增用户的属性
-            this.$Message.success(save.message) //保存后提示的消息
-            getData() //更新用户列表数据
-            showEdit.value = false
-          } else {
-            this.$Message.error(save.message)
-          }
-        } else { //验证失败
-          this.$Message.error('提交失败!')
+    // 查看审批流信息
+    async function checkCurrent(auditGroupId){
+      offModel.value = true
+       // 获取历史及当前的流信息
+      await manager.histoicAuditList({auditGroup:auditGroupId}).then((res)=>{
+        if(res.code === 101){
+          historyAndNowFlow.value = res.data || []
         }
       })
     }
 
+    // 格式化日期
+    function formatData(date) {
+      return moment(date).format("YYYY-MM-DD hh:mm:ss");
+    }
 
     onMounted(()=>{
-      getData()
+      pageName.value = route.meta.nameEN
+      getData() //获取商品数据
     })
 
     return {
-      isEdit,showEdit,modelTitle,editSub,itemForm,addUserInfo,itemValidator,dataLoading,userList,current,searchFilter,
-      getData,changePage,addUser,editUserModel,saveUser
+      mohuloading,pageName,shopList,totalNum,itemList,dataloading,current,searchFilter,offModel,detailData,historyAndNowFlow,waitAuditDetailData,auditstatus,shoptypeCode,auditType,
+      viewItem,getData,changePage,searchItem,changeStartTime,changeEndTime,checkCurrent,formatData
     }
   },
 })
@@ -221,5 +225,90 @@ export default defineComponent({
 <style lang="scss" scoped>
 .auitMatters{
   padding: 1em;
+  .el-table{
+    width: 100%;
+    font-size: 12px;
+  }
+  .ivu-modal-mask{
+    background-color: rgba(55, 55, 55, 0.1);
+  }
+  .track-rcol{
+   border: 1px solid #eee;
+ }
+ .deliverNum{
+    color: red;
+    text-align: center;
+    padding-top: 20px;
+ }
+  .track-list{
+    margin: 20px;
+   padding-left: 5px;
+   position: relative;
+ }
+  .track-list li{
+    position: relative;
+   padding: 9px 0 0 25px;
+   line-height: 18px;
+   border-left: 1px solid #d9d9d9;
+   color: #999;
+ }
+  .track-list li.first{
+    color: red;
+   padding-top: 0;
+   border-left-color: #fff;
+ }
+  .track-list li .node-icon{
+    position: absolute;
+   left: -6px;
+   top: 50%;
+   width: 11px;
+   height: 11px;
+   background: url(../../../assets/images/order-icons.png)  -21px -72px no-repeat;
+ }
+  .track-list li.first .node-icon{
+    background-position:0 -72px;
+  }
+  .track-list li .time{
+    margin-right: 20px;
+   position: relative;
+   top: 4px;
+   display: inline-block;
+   vertical-align: middle;
+ }
+  .track-list li .txt{
+    max-width: 600px;
+   position: relative;
+   top: 4px;
+   display: inline-block;
+   vertical-align: middle;
+ }
+  .track-list li.first .time{
+    margin-right: 20px;
+   }
+  .track-list li.first .txt{
+    max-width: 600px;
+   }
+  .content{
+    margin-top: 3em;
+    color: #000;
+    .updatetime{
+        font-size: 14px;
+        color:#666;
+    }
+    .head-style{
+        background-color: #e8f2ff;
+        border: 1px solid #999;
+        padding: 0.8em 0;
+    }
+  }
+  .tab-style{
+      width: 100%;
+      border-collapse: collapse;
+  }
+  .tab-style>tr>td{
+      border: 1px solid #999;
+      padding: 0.2em 0.2em;
+      font-size: 13px;
+  }
 }
 </style>

Fichier diff supprimé car celui-ci est trop grand
+ 1978 - 149
src/views/manager/shopItemManager/bargainManage.vue


+ 5 - 3
src/views/manager/shopItemManager/itemClassify/index.vue

@@ -308,9 +308,11 @@ export default defineComponent({
       updateClass.value.coverImage = data.coverImage;
       updateClass.value.isBrandShow = data.isBrandShow;
       updateClass.value.contentInfoIds =[]
-      data.contentInfos.forEach(item=> {
-        updateClass.value.contentInfoIds.push(item.id)
-      })
+      if(data.contentInfos){
+        data.contentInfos.forEach(item=> {
+          updateClass.value.contentInfoIds.push(item.id)
+        })
+      }
       updateClass.value.nameShort = data.nameShort;
       nodeClass.value.level = node.level;
       setTimeout(() => {

+ 5 - 4
src/views/manager/shopItemManager/itemList.vue

@@ -2162,11 +2162,12 @@ export default defineComponent({
     }
 
     function filters(item,val){
-      console.log(item,'item')
-      item.forEach(e=>{
-        e.typeCode = val
+      const arr = item.filter((e)=>{
+        if(e.typeCode == val){
+          return e
+        }
       })
-      return item
+      return arr
     }
     
     // 格式化日期

+ 5 - 4
src/views/manager/shopItemManager/itemOff.vue

@@ -2704,11 +2704,12 @@ export default defineComponent({
     }
 
     function filters(item,val){
-      console.log(item,'item')
-      item.forEach(e=>{
-        e.typeCode = val
+      const arr = item.filter((e)=>{
+        if(e.typeCode == val){
+          return e
+        }
       })
-      return item
+      return arr
     }
     
     // 格式化日期

+ 49 - 39
src/views/manager/shopItemManager/itemUp.vue

@@ -202,10 +202,13 @@
                         <Button size="small">查看区域</Button> 
                         <template #content>
                           <div style="white-space: normal; ">
-                            <span v-for="(list,index) in scope.row.itemSellAreas" :key="index">
-                              <Tag v-if="list.isNational == 0" color="blue">全国</Tag>
-                              <Tag v-if="list.isNational == 1" color="blue">{{list.province || ''}}{{list.city || ''}}{{list.area || ''}}</Tag>
+                            <span v-if="scope.row.itemSellAreas.length>0">
+                              <span v-for="(list,index) in scope.row.itemSellAreas" :key="index">
+                                <Tag v-if="list.isNational == 0" color="blue">全国</Tag>
+                                <Tag v-if="list.isNational == 1" color="blue">{{list.province || ''}}{{list.city || ''}}{{list.area || ''}}</Tag>
+                              </span>
                             </span>
+                            <span v-else>暂无</span>
                           </div>
                         </template>
                     </Poptip>
@@ -416,11 +419,14 @@
                   <Poptip transfer trigger="hover" placement="top">
                     <Button size="small">查看区域</Button> 
                     <template #content>
-                      <div slot="content" style="white-space: normal; ">
-                        <span v-for="(list,index) in scope.row.itemSellAreas" :key="index">
-                          <Tag v-if="list.isNational == 0" color="blue">全国</Tag>
-                          <Tag v-if="list.isNational == 1" color="blue">{{list.province || ''}}{{list.city || ''}}{{list.area || ''}}</Tag>
+                      <div style="white-space: normal; ">
+                        <span v-if="scope.row.itemSellAreas.length>0">
+                          <span v-for="(list,index) in scope.row.itemSellAreas" :key="index">
+                            <Tag v-if="list.isNational == 0" color="blue">全国</Tag>
+                            <Tag v-if="list.isNational == 1" color="blue">{{list.province || ''}}{{list.city || ''}}{{list.area || ''}}</Tag>
+                          </span>
                         </span>
+                        <span v-else>暂无</span>
                       </div>
                     </template>
                   </Poptip>
@@ -631,12 +637,14 @@
                   <template #default="scope">
                       <Poptip transfer trigger="hover" placement="top">
                           <Button size="small">查看区域</Button>
-                          <div slot="content" style="white-space: normal;">
-                            <span v-for="(list,index) in scope.row.itemSellAreas" :key="index">
-                              <Tag v-if="list.isNational == 0" color="blue">全国</Tag>
-                              <Tag v-if="list.isNational == 1" color="blue">{{list.province || ''}}{{list.city || ''}}{{list.area || ''}}</Tag>
-                            </span>
-                          </div>
+                          <template #content>
+                            <div style="white-space: normal;">
+                              <span v-for="(list,index) in scope.row.itemSellAreas" :key="index">
+                                <Tag v-if="list.isNational == 0" color="blue">全国</Tag>
+                                <Tag v-if="list.isNational == 1" color="blue">{{list.province || ''}}{{list.city || ''}}{{list.area || ''}}</Tag>
+                              </span>
+                            </div>
+                          </template>
                       </Poptip>
                   </template>
               </el-table-column>
@@ -1731,7 +1739,7 @@ export default defineComponent({
       let res = await item.AuditItem({ status:3, id: id })
       loadingButton.value=false
       if (res.code == 101) {
-      	Message.success('通过成功')
+      	Message.success(res.message||'通过成功')
       	for(let i=0;i<itemList.value.length;i++){                        
           for(let j=0;j<itemList.value[i].itemSkus.length;j++){
             if(id == itemList.value[i].itemSkus[j].id){
@@ -1743,7 +1751,7 @@ export default defineComponent({
           }
         }
       } else {
-        Message.error('通过失败')
+        Message.error(res.message||'通过失败')
       }
     }
 
@@ -2212,11 +2220,12 @@ export default defineComponent({
     }
 
     function filters(item,val){
-      console.log(item,'item')
-      item.forEach(e=>{
-        e.typeCode = val
+      const arr = item.filter((e)=>{
+        if(e.typeCode == val){
+          return e
+        }
       })
-      return item
+      return arr
     }
     
     // 格式化日期
@@ -2316,6 +2325,27 @@ export default defineComponent({
       color:#666;
     }
   }
+ 
+}
+</style>
+<style lang="scss">
+  .ivu-input{
+    color: #000 !important;
+  }
+  .head-style{
+      background-color: #e8f2ff;
+      border: 1px solid #999;
+      padding: 0.8em 0;
+    }
+  .tab-style{
+    width: 100%;
+    border-collapse: collapse;
+  }
+  .tab-style>tr>td{
+    border: 1px solid #999;
+    padding: 0.2em 0.2em;
+    font-size: 13px;
+  }
   .goodBackage{
   width: 70%;
   margin: auto;
@@ -2578,24 +2608,4 @@ export default defineComponent({
 .goodBackage::-webkit-scrollbar {
   display: none; /* Chrome Safari */
 }
-}
-</style>
-<style lang="scss">
-  .ivu-input{
-    color: #000 !important;
-  }
-  .head-style{
-      background-color: #e8f2ff;
-      border: 1px solid #999;
-      padding: 0.8em 0;
-    }
-  .tab-style{
-    width: 100%;
-    border-collapse: collapse;
-  }
-  .tab-style>tr>td{
-    border: 1px solid #999;
-    padding: 0.2em 0.2em;
-    font-size: 13px;
-  }
 </style>

+ 5 - 4
src/views/manager/shopItemManager/recheckIllegalltemOff.vue

@@ -1748,11 +1748,12 @@ export default defineComponent({
     }
 
     function filters(item,val){
-      console.log(item,'item')
-      item.forEach(e=>{
-        e.typeCode = val
+      const arr = item.filter((e)=>{
+        if(e.typeCode == val){
+          return e
+        }
       })
-      return item
+      return arr
     }
     
     // 格式化日期

+ 235 - 145
src/views/manager/shopItemManager/waitAuitMatters.vue

@@ -6,72 +6,93 @@
 
 <template>
   <div class="waitAuitMatters">
-    <!-- 搜索 -->
-    <Row>
-      <Col span="6">
-        <Input placeholder="请输入昵称进行搜索" v-model="searchFilter.nickName" @on-change="getData">
-        </Input>
+    <!-- 按商品号搜索 -->
+    <Row :gutter="10">
+      <Col span="5">
+        <Input placeholder="请输入商品名称" v-model="searchFilter.itemName" clearable/>
       </Col>
-    </Row>
-    <br>
-    <br>
-    <Row type="flex" align="middle" justify="end">
-      <Col span="3">
-        <Button long @click="addUser">
-          新增用户
-        </Button>
+      <Col span="4">
+        <DatePicker type="date" placeholder="到达时间开始日期"
+          format="yyyy-MM-dd"
+          confirm
+          v-model="searchFilter.startTime"
+          @on-change="changeStartTime"/>
+      </Col>
+      <Col>-</Col>
+      <Col span="4">
+        <DatePicker type="date" placeholder="到达时间 截止日期"
+        format="yyyy-MM-dd"
+        confirm v-model="searchFilter.endTime"
+        @on-change="changeEndTime"
+        />
+      </Col>
+      <Col span="6">
+        <Button type="primary" icon="ios-search" @click="searchItem">商品搜索</Button>
       </Col>
     </Row>
-    <br>
+    <br />
     <!-- 数据展示 -->
-    <el-table  :data="userList.data" v-loading="dataLoading">
-      <el-table-column label="用户名" min-width="40" align="center">
+    <el-table class="el-table" :data="itemList"  v-loading="dataloading"  v-if="itemList.length>0">
+      <el-table-column label="商品名称" width="130" align="center">
+        <template #default="scope">
+          <a @click="viewItem(scope.row.id)">{{scope.row.itemName || '无名称'}}</a>
+        </template>
+      </el-table-column>
+      <el-table-column label="分类" min-width="180">
+        <template #default="scope">
+           {{ scope.row.classifyOne}}/{{scope.row.classifyTwo}}/{{scope.row.classifyThree}}
+        </template>
+      </el-table-column>
+      <el-table-column label="审批商品状态" >
+        <template #default="scope">
+          <span v-if="scope.row.auditStatus">
+            {{ auditstatus(scope.row.auditStatus)}}
+          </span>
+          <span v-else>待审核</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="商品类型" width="120">
         <template #default="scope">
           <span>
-            {{scope.row.userName ||'无'}}
+            {{shoptypeCode(scope.row.typeCode)}}
           </span>
         </template>
       </el-table-column>
-      <el-table-column label="昵称"  min-width="80" align="center">
+      <el-table-column label="当前环节" width="120">
         <template #default="scope">
           <span>
-            {{scope.row.nickName ||'无'}}
+            {{auditType(scope.row.auditType ) }}
           </span>
         </template>
       </el-table-column>
-    
-      <el-table-column label="操作" fixed="right" align="center">
+      <el-table-column label="到达时间" width="150">
+        <template #default="scope">
+          <span>
+            {{formatData(scope.row.startTime )}}
+          </span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" fixed="right" width="130">
         <template #default="scope">
           <!--按钮-->
-            <Button type="warning" size="small" @click.native="$jump('/1001030500?id='+scope.row.id+'&nickName='+scope.row.nickName)">用户分配</Button>&nbsp;
-            <Button type="primary" size="small" @click.native="editUserModel(scope.row)">修改</Button>&nbsp;
-            <Button type="error" size="small" @click.native="delBtn(scope.row.id)">删除</Button>
+            <Button type="primary" size="small" @click="checkCurrent(scope.row.auditGroup)">查看审批流程</Button>
         </template>
       </el-table-column>
     </el-table>
     <!-- 分页 -->
     <div style="margin: 10px;overflow: hidden">
-        <div style="float: right;">
-            <Page show-elevator :total="parseInt(userList.total)" :page-size="userList.limit" :current="current" @on-change="changePage"></Page>
-        </div>
-    </div>
-    <!-- 修改用户信息 -->
-    <Modal v-model="showEdit" :title="modelTitle" :ok-text="editSub" @on-ok="submit('editUser')" @on-cancel="$refs['editUser'].resetFields()">
-      <Form ref="editUser" :model="itemForm" :rules="itemValidator" :label-width="80">
-        <Form-item label="用户名" prop="userName">
-          <Input v-model="itemForm.userName" :disabled="isEdit" placeholder="请输入用户名"></Input>
-        </Form-item>
-        <Form-item label="昵称" prop="nickName">
-          <Input v-model="itemForm.nickName" placeholder="请输入昵称"></Input>
-        </Form-item>
-        <Form-item label="密码" prop="password">
-          <Input v-model="itemForm.password" placeholder="请输入密码"></Input>
-        </Form-item>
-      </Form>
-      <div slot="footer">
-        <Button type="primary" @click="saveUser">保存</Button>
-        <Button  @click="reset('editUser')" style="margin-left: 8px">重置</Button>
+      <div style="float: right;">
+        <Page show-elevator :total="parseInt(totalNum)" :page-size="searchFilter.limit" :current.sync="current" @on-change="changePage"></Page>
       </div>
+    </div>
+    <!-- 审批历史 -->
+    <Modal v-model="offModel" title="审批详情">
+      <audit-process :historyAndNowFlow="historyAndNowFlow" :displayBtn="false"></audit-process>
+      <template #footer>
+        <div style="text-align:center;">
+          <Button @click="offModel = false">关闭页面</Button>
+        </div>
+      </template>
     </Modal>
   </div>
 </template>
@@ -80,139 +101,123 @@
 import { defineComponent, onMounted, ref ,reactive,getCurrentInstance} from 'vue'
 import {manager} from '@/request/api'
 import { Message,Modal } from 'view-ui-plus'
+import { useRoute } from 'vue-router'
+import { auditstatus,shoptypeCode,auditType} from '@/utils/system/filters'
+import moment from 'moment'
+import auditProcess from '@/components/auditProcess/auditprocess'
 
 export default defineComponent({
   components:{
-    
+    auditProcess
   },
   setup() {
     let {proxy} = getCurrentInstance();
     const token = localStorage.aynUserToken
 
-    let isEdit = ref(false)               //是否为修改用户
-    let showEdit = ref(false)               //是否显示 新建/修改用户 弹窗
-    let modelTitle = ref('')              //新建/修改用户 弹窗的标题
-    let editSub = ref('')                  //新建/修改弹窗 提交按钮文字
-    let itemForm = reactive({                   
-        id: '',
-        userName: '',
-        nickName: '',
-        password: '',
-    }) 
-    let addUserInfo = reactive({})               
-    let itemValidator = { //第一步内容验证
-          userName: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-          nickName: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-          password: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-
-      }
-    let dataLoading = ref(false)
-    let userList = ref({})              //管理人员列表
-    let current = ref(1)             //当前页码
-    let searchFilter = reactive({
-        nickName: '',            //昵称
-        offset: 0,               //偏移量
+    let route = useRoute()
+    let mohuloading = ref(false) //模糊搜索加载
+    let pageName = ref('')
+    let shopList = ref([]) //供应商列表
+    let itemList = ref([])
+    let totalNum = ref(0)                    //商品数据
+    let dataloading = ref(false)    //是否在加载中
+    let current =ref(1)       //当前页码
+    let searchFilter = ref({
+      startTime: '',
+      endTime:'',     
+      itemName:'',        
+      offset: 0,
+      limit:10
     })
+    let offModel = ref(false) //查看弹框
+    let detailData = ref('')
+    let historyAndNowFlow = ref([])
+    let waitAuditDetailData = ref({})
 
 
-
-    //获取广告数据
-    function getData(){
-      dataLoading.value = true;
-      manager.GetUserList({
-        ...searchFilter
-      }).then((res) => {
-        if(res.code == '101') {
-           userList.value = res
-        }else {
-          this.$Message.error(res.message)
+    function viewItem(id){
+      // $open('shop/index.html#/item','itemId='+scope.row.id)
+      let env = process.env.NODE_ENV
+      if (env === 'development') {
+        window.open('http://test.aiyangniu.net/dist/views/shop/index.html#/item?itemId='+id)
+      }
+          
+      if(env === 'testing'){
+          window.open('http://test.aiyangniu.net/dist/views/shop/index.html#/item?itemId='+id)
+      }
+      if(env === 'production'){
+          window.open('https://shop.aiyangniu.cn/dist/views/shop/index.html#/item?itemId='+id)
+      }
+    }
+    
+    //获取商品数据
+    async function getData(){
+      itemList.value = []
+      dataloading.value = true;
+      await manager.getAwaitAuditProcess({
+        ...searchFilter.value
+      }).then(res =>{
+        if (res.code==101) {
+            itemList.value = res.data || []
+            totalNum.value = res.total || 0
+        }else{
+        	Message.error(res.message)
         }
-      }).catch((err) => {
-          this.$Message.error(err)
       })
-			dataLoading.value = false;
+      dataloading.value = false;
     }
-    
+
     //更改页码
     function changePage (page) {
-      let userlist = userList.value
-      if(userlist.limit){
-        searchFilter.offset = (page -1) *  userlist.limit  //更新偏移量
+      let itemlist = itemList.value
+      if(itemlist.limit){
+        searchFilter.value.offset = (page -1) *  itemlist.limit  //更新偏移量
         current.value = page  //切换当前页码
-        getData()       //获取广告数据
+        getData()       //获取商品数据
       }
+      searchFilter.value.offset = (page - 1) * searchFilter.value.limit
+      console.log(current.value)
+      getData()
     }
 
-    //显示新增用户
-    function addUser() {
-      this.$refs['editUser'].resetFields()
-      isEdit.value = false //新增用户
-      editSub.value = '提交'
-      modelTitle.value = '新增用户'
-      itemForm = Object.assign(itemForm, {
-                userName: '',
-                nickName: '',
-                password: '',
-              })
-      showEdit.value = true //显示弹窗
+    /*=====搜索商品功能=====*/
+    function searchItem(){
+      getData()
     }
-    //显示修改用户
-    function editUserModel(data) {
-      this.$refs['editUser'].resetFields()
-      isEdit.value = true //修改用户
-      editSub.value = '保存'
-      modelTitle.value = '修改用户'
-      itemForm = _.cloneDeep(data) //需要修改的用户
-      showEdit.value = true //显示弹窗
+
+    //更改开始时间
+    function changeStartTime(time){
+      searchFilter.value.startTime = time
+    }
+    //更改截止时间
+    function changeEndTime(time){
+      searchFilter.value.endTime = time
     }
 
-    //保存用户
-    function saveUser() {
-      this.$refs['editUser'].validate(async(valid) => {
-        if (valid) { //验证成功
-          if(!isEdit.value){ //判断是否是新增,还是修改,如果是新增的话,则传到用一个对象保存数据,传参不同
-            addUserInfo = {}
-            addUserInfo.userName = itemForm.userName ? itemForm.userName : ''
-            addUserInfo.nickName = itemForm.nickName ? itemForm.nickName : ''
-            addUserInfo.password = itemForm.password ? itemForm.password : ''
-          }else{
-            addUserInfo = {}
-          }
-          let save = isEdit.value ? await manager.UpdateUser(itemForm) : await manager.AddNewUser(addUserInfo) //修改和保存调用不同接口
-          if (save.code === 101) {
-            // this.editUser = save.data //获取新增用户的属性
-            this.$Message.success(save.message) //保存后提示的消息
-            getData() //更新用户列表数据
-            showEdit.value = false
-          } else {
-            this.$Message.error(save.message)
-          }
-        } else { //验证失败
-          this.$Message.error('提交失败!')
+    // 查看审批流信息
+    async function checkCurrent(auditGroupId){
+      offModel.value = true
+       // 获取历史及当前的流信息
+      await manager.histoicAuditList({auditGroup:auditGroupId}).then((res)=>{
+        if(res.code === 101){
+          historyAndNowFlow.value = res.data || []
         }
       })
     }
 
+    // 格式化日期
+    function formatData(date) {
+      return moment(date).format("YYYY-MM-DD hh:mm:ss");
+    }
 
     onMounted(()=>{
-      getData()
+      pageName.value = route.meta.nameEN
+      getData() //获取商品数据
     })
 
     return {
-      isEdit,showEdit,modelTitle,editSub,itemForm,addUserInfo,itemValidator,dataLoading,userList,current,searchFilter,
-      getData,changePage,addUser,editUserModel,saveUser
+      mohuloading,pageName,shopList,totalNum,itemList,dataloading,current,searchFilter,offModel,detailData,historyAndNowFlow,waitAuditDetailData,auditstatus,shoptypeCode,auditType,
+      viewItem,getData,changePage,searchItem,changeStartTime,changeEndTime,checkCurrent,formatData
     }
   },
 })
@@ -221,5 +226,90 @@ export default defineComponent({
 <style lang="scss" scoped>
 .waitAuitMatters{
   padding: 1em;
+  .el-table{
+    width: 100%;
+    font-size: 12px;
+  }
+  .ivu-modal-mask{
+    background-color: rgba(55, 55, 55, 0.1);
+  }
+  .track-rcol{
+   border: 1px solid #eee;
+ }
+ .deliverNum{
+    color: red;
+    text-align: center;
+    padding-top: 20px;
+ }
+  .track-list{
+    margin: 20px;
+   padding-left: 5px;
+   position: relative;
+ }
+  .track-list li{
+    position: relative;
+   padding: 9px 0 0 25px;
+   line-height: 18px;
+   border-left: 1px solid #d9d9d9;
+   color: #999;
+ }
+  .track-list li.first{
+    color: red;
+   padding-top: 0;
+   border-left-color: #fff;
+ }
+  .track-list li .node-icon{
+    position: absolute;
+   left: -6px;
+   top: 50%;
+   width: 11px;
+   height: 11px;
+   background: url(../../../assets/images/order-icons.png)  -21px -72px no-repeat;
+ }
+  .track-list li.first .node-icon{
+    background-position:0 -72px;
+  }
+  .track-list li .time{
+    margin-right: 20px;
+   position: relative;
+   top: 4px;
+   display: inline-block;
+   vertical-align: middle;
+ }
+  .track-list li .txt{
+    max-width: 600px;
+   position: relative;
+   top: 4px;
+   display: inline-block;
+   vertical-align: middle;
+ }
+  .track-list li.first .time{
+    margin-right: 20px;
+   }
+  .track-list li.first .txt{
+    max-width: 600px;
+   }
+  .content{
+    margin-top: 3em;
+    color: #000;
+    .updatetime{
+        font-size: 14px;
+        color:#666;
+    }
+    .head-style{
+        background-color: #e8f2ff;
+        border: 1px solid #999;
+        padding: 0.8em 0;
+    }
+  }
+  .tab-style{
+      width: 100%;
+      border-collapse: collapse;
+  }
+  .tab-style>tr>td{
+      border: 1px solid #999;
+      padding: 0.2em 0.2em;
+      font-size: 13px;
+  }
 }
 </style>

+ 158 - 150
src/views/manager/shopItemManager/warningManage.vue

@@ -1,85 +1,86 @@
 /**
  * 模板名称:商品预警管理
  * 作者:zhangyy
- * 时间:2023-09-22
+ * 时间:2023-10-13
  */
 
 <template>
   <div class="warningManage">
-    <!-- 搜索 -->
-    <Row>
+    <!-- 按商品号搜索 -->
+    <Row :gutter="10">
       <Col span="6">
-        <Input placeholder="请输入昵称进行搜索" v-model="searchFilter.nickName" @on-change="getData">
-        </Input>
+        <Input placeholder="请输入供应商名称" v-model="searchFilter.shopName"/>
       </Col>
-    </Row>
-    <br>
-    <br>
-    <Row type="flex" align="middle" justify="end">
-      <Col span="3">
-        <Button long @click="addUser">
-          新增用户
-        </Button>
+      <Col span="6">
+        <Button type="primary" icon="ios-search" @click="searchItem">搜索</Button>
       </Col>
     </Row>
-    <br>
+
+    <br />
+
     <!-- 数据展示 -->
-    <el-table  :data="userList.data" v-loading="dataLoading">
-      <el-table-column label="用户名" min-width="40" align="center">
-        <template #default="scope">
-          <span>
-            {{scope.row.userName ||'无'}}
-          </span>
-        </template>
+    <el-table class="el-table" :data="itemList"  v-loading="dataloading" >
+      <el-table-column type="index" width="80" label="序号" align="center">
+      </el-table-column>
+      <el-table-column label="供应商公司名称" width="380" align="center">
+          <template #default="scope">
+          {{scope.row.company || '无名称'}}
+          </template>
       </el-table-column>
-      <el-table-column label="昵称"  min-width="80" align="center">
+      <el-table-column label="店铺名称" align="center">
+          <template #default="scope">
+          {{ scope.row.name || '无名称'}}
+          </template>
+      </el-table-column>
+      <el-table-column label="预警模式" width="120" align="center">
         <template #default="scope">
           <span>
-            {{scope.row.nickName ||'无'}}
+            <el-tag v-if="scope.row.warnStatus !== 0">{{ warningStatus(scope.row.warnStatus) }}</el-tag>
+            <span v-else style="color:#2d8cf0;cursor:pointer" @click="checkCurrent(scope.row)">未设置</span>
           </span>
         </template>
       </el-table-column>
-    
-      <el-table-column label="操作" fixed="right" align="center">
+      <el-table-column label="操作" fixed="right" width="280" align="center">
         <template #default="scope">
           <!--按钮-->
-            <Button type="warning" size="small" @click.native="$jump('/1001030500?id='+scope.row.id+'&nickName='+scope.row.nickName)">用户分配</Button>&nbsp;
-            <Button type="primary" size="small" @click.native="editUserModel(scope.row)">修改</Button>&nbsp;
-            <Button type="error" size="small" @click.native="delBtn(scope.row.id)">删除</Button>
+          <Button type="primary" size="small" @click="checkCurrent(scope.row)">设置预警</Button>&nbsp;
+          <Button type="error" v-if="scope.row.warnStatus !== 0" size="small" @click="cancelWarn(scope.row)">取消预警</Button>
         </template>
       </el-table-column>
     </el-table>
     <!-- 分页 -->
     <div style="margin: 10px;overflow: hidden">
-        <div style="float: right;">
-            <Page show-elevator :total="parseInt(userList.total)" :page-size="userList.limit" :current="current" @on-change="changePage"></Page>
-        </div>
+      <div style="float: right;">
+        <Page show-elevator :total="parseInt(totalNum)" :page-size="searchFilter.limit" :current.sync="current" @on-change="changePage"></Page>
+      </div>
     </div>
-    <!-- 修改用户信息 -->
-    <Modal v-model="showEdit" :title="modelTitle" :ok-text="editSub" @on-ok="submit('editUser')" @on-cancel="$refs['editUser'].resetFields()">
-      <Form ref="editUser" :model="itemForm" :rules="itemValidator" :label-width="80">
-        <Form-item label="用户名" prop="userName">
-          <Input v-model="itemForm.userName" :disabled="isEdit" placeholder="请输入用户名"></Input>
-        </Form-item>
-        <Form-item label="昵称" prop="nickName">
-          <Input v-model="itemForm.nickName" placeholder="请输入昵称"></Input>
-        </Form-item>
-        <Form-item label="密码" prop="password">
-          <Input v-model="itemForm.password" placeholder="请输入密码"></Input>
-        </Form-item>
+      
+    <!-- 审批历史 -->
+    <Modal v-model="offModel" title="设置预警" :loading="loadIn">
+      <Form :label-width="120">
+        <FormItem label="供应商名称">
+          <el-radio-group v-model="warnStatus">
+            <el-radio :label="1">钉钉提醒</el-radio>
+            <el-radio :label="2">自动下架</el-radio>
+          </el-radio-group>
+        </FormItem>
       </Form>
-      <div slot="footer">
-        <Button type="primary" @click="saveUser">保存</Button>
-        <Button  @click="reset('editUser')" style="margin-left: 8px">重置</Button>
-      </div>
+      <template #footer>
+        <div style="text-align:center;">
+          <Button type="error" @click="offModel = false">取消</Button>
+          <Button type="success" @click="setWarnItem">保存</Button>
+        </div>
+      </template>
     </Modal>
   </div>
 </template>
 
 <script>
-import { defineComponent, onMounted, ref ,reactive,getCurrentInstance} from 'vue'
+import { defineComponent, onMounted, ref ,nextTick,getCurrentInstance} from 'vue'
 import {manager} from '@/request/api'
 import { Message,Modal } from 'view-ui-plus'
+import { ElMessageBox,ElMessage} from 'element-plus'
+import { warningStatus } from '@/utils/system/filters'
 
 export default defineComponent({
   components:{
@@ -89,130 +90,136 @@ export default defineComponent({
     let {proxy} = getCurrentInstance();
     const token = localStorage.aynUserToken
 
-    let isEdit = ref(false)               //是否为修改用户
-    let showEdit = ref(false)               //是否显示 新建/修改用户 弹窗
-    let modelTitle = ref('')              //新建/修改用户 弹窗的标题
-    let editSub = ref('')                  //新建/修改弹窗 提交按钮文字
-    let itemForm = reactive({                   
-        id: '',
-        userName: '',
-        nickName: '',
-        password: '',
-    }) 
-    let addUserInfo = reactive({})               
-    let itemValidator = { //第一步内容验证
-          userName: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-          nickName: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-          password: [{
-              required: true,
-              message: ' ',
-              trigger: 'blur'
-          }],
-
-      }
-    let dataLoading = ref(false)
-    let userList = ref({})              //管理人员列表
-    let current = ref(1)             //当前页码
-    let searchFilter = reactive({
-        nickName: '',            //昵称
-        offset: 0,               //偏移量
+    let itemList = ref([])
+    let totalNum = ref(0)                    //商品数据
+    let dataloading = ref(false)    //是否在加载中
+    let current =ref(1)       //当前页码
+    let searchFilter = ref({
+        shopName:'',        
+        offset: 0,
+        limit:10
     })
+    let offModel = ref(false)//查看弹框
+    let warnStatus = ref(1)        //设置预警方式
+    let loadIn = ref(false)       //是否在请求接口状态
+    let rowInfo = ref({})             //保存当前行数据信息
 
-
-
-    //获取广告数据
-    function getData(){
-      dataLoading.value = true;
-      manager.GetUserList({
-        ...searchFilter
-      }).then((res) => {
-        if(res.code == '101') {
-           userList.value = res
-        }else {
-          this.$Message.error(res.message)
+    //获取商品数据
+    async function getData(){
+      itemList.value = []
+      dataloading.value = true;
+      await manager.getWarningList({
+          ...searchFilter.value
+      }).then(res =>{
+        if (res.code==101) {
+          itemList.value = res.data || []
+          totalNum.value = res.total || 0
+        }else{
+          Message.error(res.message)
         }
-      }).catch((err) => {
-          this.$Message.error(err)
       })
-			dataLoading.value = false;
+      dataloading.value = false;
     }
-    
+
     //更改页码
     function changePage (page) {
-      let userlist = userList.value
-      if(userlist.limit){
-        searchFilter.offset = (page -1) *  userlist.limit  //更新偏移量
+      let itemlist = itemList.value
+      if(itemlist.limit){
+        searchFilter.value.offset = (page -1) *  itemlist.limit  //更新偏移量
         current.value = page  //切换当前页码
-        getData()       //获取广告数据
+        getData()       //获取商品数据
       }
+      searchFilter.value.offset = (page - 1) * searchFilter.value.limit
+      getData()
     }
 
-    //显示新增用户
-    function addUser() {
-      this.$refs['editUser'].resetFields()
-      isEdit.value = false //新增用户
-      editSub.value = '提交'
-      modelTitle.value = '新增用户'
-      itemForm = Object.assign(itemForm, {
-                userName: '',
-                nickName: '',
-                password: '',
-              })
-      showEdit.value = true //显示弹窗
+    /*=====搜索商品功能=====*/
+    function searchItem(){
+      getData()
+    }
+
+    //更改开始时间
+    function changeStartTime(time){
+      searchFilter.value.startTime = time
     }
-    //显示修改用户
-    function editUserModel(data) {
-      this.$refs['editUser'].resetFields()
-      isEdit.value = true //修改用户
-      editSub.value = '保存'
-      modelTitle.value = '修改用户'
-      itemForm = _.cloneDeep(data) //需要修改的用户
-      showEdit.value = true //显示弹窗
+    //更改截止时间
+    function changeEndTime(time){
+      searchFilter.value.endTime = time
     }
 
-    //保存用户
-    function saveUser() {
-      this.$refs['editUser'].validate(async(valid) => {
-        if (valid) { //验证成功
-          if(!isEdit.value){ //判断是否是新增,还是修改,如果是新增的话,则传到用一个对象保存数据,传参不同
-            addUserInfo = {}
-            addUserInfo.userName = itemForm.userName ? itemForm.userName : ''
-            addUserInfo.nickName = itemForm.nickName ? itemForm.nickName : ''
-            addUserInfo.password = itemForm.password ? itemForm.password : ''
-          }else{
-            addUserInfo = {}
-          }
-          let save = isEdit.value ? await manager.UpdateUser(itemForm) : await manager.AddNewUser(addUserInfo) //修改和保存调用不同接口
-          if (save.code === 101) {
-            // this.editUser = save.data //获取新增用户的属性
-            this.$Message.success(save.message) //保存后提示的消息
-            getData() //更新用户列表数据
-            showEdit.value = false
-          } else {
-            this.$Message.error(save.message)
-          }
-        } else { //验证失败
-          this.$Message.error('提交失败!')
+    // 查看审批流信息
+    async function checkCurrent(row){
+      offModel.value = true
+      rowInfo.value = row       //存储当前行数据
+      if(row.warnStatus){
+        warnStatus.value = row.warnStatus
+      }
+    }
+
+    async function cancelWarn(row){
+      ElMessageBox.confirm('是否取消商品预警?', '取消预警', {
+          confirmButtonText: '是',
+          cancelButtonText: '否',
+          type: 'warning'
+      }).then(async () => {
+        await manager.cancelWarningInfo({
+            shopId : row.shopId,
+            warnStatus : 0
+        }).then(res =>{
+            if(res.code == 101){
+              ElMessage({
+                  type:'success',
+                  message:'取消成功'
+              })
+              getData()
+            }else{
+              ElMessage({
+                  type: 'info',
+                  message: res.message || '取消失败!'
+              }); 
+            }
+        })
+    }).catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '已取消操作'
+      });          
+    });
+    }
+    
+    //保存设置的商品预警
+    async function setWarnItem(){
+      dataloading.value = true
+      await manager.cancelWarningInfo({
+        shopId:rowInfo.value.shopId,
+        warnStatus:warnStatus.value
+      }).then(res =>{
+        if(res.code == 101){
+          ElMessage({
+              type:'success',
+              message:'设置成功'
+          })
+          loadIn.value = false
+          offModel.value = false
+          nextTick(()=>{
+            getData()
+          })
+        }else{
+          ElMessage({
+              type: 'info',
+              message: res.message || '设置失败!'
+          }); 
         }
       })
     }
-
-
+    
     onMounted(()=>{
       getData()
     })
 
     return {
-      isEdit,showEdit,modelTitle,editSub,itemForm,addUserInfo,itemValidator,dataLoading,userList,current,searchFilter,
-      getData,changePage,addUser,editUserModel,saveUser
+      itemList,totalNum,dataloading,current,searchFilter,offModel,warnStatus,loadIn,rowInfo,warningStatus,
+      getData,changePage,searchItem,changeStartTime,changeEndTime,checkCurrent,cancelWarn,setWarnItem
     }
   },
 })
@@ -221,5 +228,6 @@ export default defineComponent({
 <style lang="scss" scoped>
 .warningManage{
   padding: 1em;
+  
 }
 </style>