wenningning преди 7 часа
родител
ревизия
24325a1cf8

+ 2 - 2
manager-admin/src/views/goods/goodsDetail.vue

@@ -94,10 +94,10 @@
                 <el-tag size="small" :type="getOptionTypeTag(option.type)">{{ getOptionTypeName(option.type) }}</el-tag>
               </div>
               <div class="option-values" v-if="option.option_values && option.option_values.length > 0">
-                <spen v-for="value in option.option_values" :key="value.id">
+                <span v-for="value in option.option_values" :key="value.id">
                   <el-tag size="small" :type="value.status === 1 ? 'success' : 'info'" style="margin-right: 5px; margin-bottom: 5px;">{{ value.value }}</el-tag>
                   <el-tag v-if="value.material_code" size="small" type="warning" style="margin-left:2px;">({{ value.material_code }})</el-tag>
-                </spen>
+                </span>
               </div>
             </div>
           </div>

+ 75 - 16
manager-admin/src/views/goods/goodsEdit.vue

@@ -131,22 +131,29 @@
 
         <!-- 添加配置项展示区域 -->
         <el-form-item label="产品配置项:" class="config-options">
-          <div v-if="configOptions.length > 0">
-            <div v-for="option in configOptions" :key="option.id" class="config-option-item">
-              <div class="option-header">
-                <span class="option-name">{{ option.name }}</span>
-                <el-tag size="small" :type="getOptionTypeTag(option.type)">{{ getOptionTypeName(option.type) }}</el-tag>
+          <div class="config-header">
+            <div class="config-content">
+              <div v-if="configOptions.length > 0">
+                <div v-for="option in configOptions" :key="option.id" class="config-option-item">
+                  <div class="option-header">
+                    <span class="option-name">{{ option.name }}</span>
+                    <el-tag size="small" :type="getOptionTypeTag(option.type)">{{ getOptionTypeName(option.type) }}</el-tag>
+                  </div>
+                  <div class="option-values" v-if="option.option_values && option.option_values.length > 0">
+                    <span v-for="value in option.option_values" :key="value.id">
+                      <el-tag size="small" :type="value.status === 1 ? 'success' : 'info'" style="margin-right: 5px; margin-bottom: 5px;">{{ value.value }}</el-tag>
+                      <el-tag v-if="value.material_code" size="small" type="warning" style="margin-left:2px;">({{ value.material_code }})</el-tag>
+                    </span>
+                  </div>
+                </div>
               </div>
-              <div class="option-values" v-if="option.option_values && option.option_values.length > 0">
-                <spen v-for="value in option.option_values" :key="value.id">
-                  <el-tag size="small" :type="value.status === 1 ? 'success' : 'info'" style="margin-right: 5px; margin-bottom: 5px;">{{ value.value }}</el-tag>
-                  <el-tag v-if="value.material_code" size="small" type="warning" style="margin-left:2px;">({{ value.material_code }})</el-tag>
-                </spen>
+              <div v-else class="no-config">
+                暂无配置项
               </div>
             </div>
-          </div>
-          <div v-else class="no-config">
-            暂无配置项
+            <el-button type="primary" size="small" @click="showConfigDrawer = true" class="add-config-btn">
+              <i class="el-icon-plus"></i> 添加配置项
+            </el-button>
           </div>
         </el-form-item>
 
@@ -180,6 +187,18 @@
         <el-button @click="handleAuthGoods" type="primary">确定</el-button>
       </div>
     </el-dialog>
+    <!-- 配置项管理抽屉 -->
+    <el-drawer
+      title="配置项管理"
+      :visible.sync="showConfigDrawer"
+      direction="rtl"
+      size="80%"
+      :before-close="handleConfigDrawerClose"
+      class="config-drawer">
+      <div class="drawer-content">
+        <item-list ref="itemList" :good-id="Number(goodsId)" :good-name="goodsForm.name" />
+      </div>
+    </el-drawer>
   </div>
 </template>
 
@@ -189,12 +208,14 @@ import * as API_configOptions from '@/api/pjConfigOptions'
 import { UE, UploadSortable } from '@/components'
 import { RegExp } from '~/ui-utils'
 import Storage from '../../utils/storage'
+import itemList from '../goodsItem/itemList.vue'
 
 export default {
   name: 'pjGoodsEdit',
   components: {
     [UploadSortable.name]: UploadSortable,
-    [UE.name]: UE
+    [UE.name]: UE,
+    itemList
   },
   data() {
     const checkHtml = (rule, value, callback) => {
@@ -219,7 +240,7 @@ export default {
       /** 加载中。。。 */
       loading: false,
 
-      goodsId: '',
+      goodsId: 0,
 
       goodsForm: {
         enabled: true,
@@ -264,7 +285,8 @@ export default {
       authPass: true,
       authMsg: '',
 
-      configOptions: [] // 添加配置项数据
+      configOptions: [], // 添加配置项数据
+      showConfigDrawer: false // 控制配置项抽屉显示
     }
   },
   mounted() {
@@ -526,6 +548,12 @@ export default {
         this.loading = false
         this.authDialogVisible = false
       })
+    },
+    // 处理配置项抽屉关闭
+    handleConfigDrawerClose(done) {
+      // 关闭抽屉时重新加载配置项数据
+      this.loadConfigOptions()
+      done()
     }
   }
 }
@@ -592,6 +620,22 @@ div.base-info-item {
 }
 
 .config-options {
+  .config-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: flex-start;
+    gap: 20px;
+
+    .config-content {
+      flex: 1;
+    }
+
+    .add-config-btn {
+      flex-shrink: 0;
+      margin-top: 5px;
+    }
+  }
+
   .config-option-item {
     margin-bottom: 15px;
     padding: 10px;
@@ -623,4 +667,19 @@ div.base-info-item {
     padding: 20px 0;
   }
 }
+
+.config-drawer {
+  /deep/ .el-drawer__header {
+    margin-bottom: 0;
+    padding: 20px;
+    border-bottom: 1px solid #ebeef5;
+    font-size: 18px;
+    font-weight: 500;
+  }
+
+  .drawer-content {
+    height: calc(100% - 60px);
+    overflow-y: auto;
+  }
+}
 </style>

+ 73 - 19
manager-admin/src/views/goodsItem/itemList.vue

@@ -47,23 +47,31 @@
       </el-table-column>
       <el-table-column label="适用商品" min-width="200">
         <template slot-scope="scope">
-          <el-tag v-if="scope.row.product_ids != null ||  scope.row.product_ids != ''"
-            v-for="(productName, index) in scope.row.show_product_names"
-            :key="index"
-            style="margin-right: 5px; cursor: pointer;"
-            @click="handleProductTagClick(productName)"
-            closable
-            @close="handleProductTagClose(scope.row, index)"
-          >
-            {{ productName }}
-          </el-tag>
-          <el-button
-            type="text"
-            size="mini"
-            @click="showProductSelector(scope.row)"
-          >
-            选择商品
-          </el-button>
+          <div v-if="scope.row.show_product_names && scope.row.show_product_names.length > 0">
+            <el-tag
+              v-for="(productName, index) in scope.row.show_product_names"
+              :key="index"
+              style="margin-right: 5px; margin-bottom: 5px; cursor: pointer;"
+              @click="handleProductTagClick(productName)"
+              closable
+              @close="handleProductTagClose(scope.row, index)"
+              v-show="index < 6 || scope.row.productsExpanded"
+            >
+              {{ productName }}
+            </el-tag>
+          </div>
+          <div class="product-actions">
+            <el-button
+              v-if="scope.row.show_product_names && scope.row.show_product_names.length > 6"
+              type="text"
+              size="mini"
+              @click="toggleProductsExpanded(scope.row)"
+              style="padding: 0; margin-right: 10px;">
+              {{ scope.row.productsExpanded ? '收起' : `查看更多(${scope.row.show_product_names.length - 6})` }}
+            </el-button>
+            <el-button v-if="goodId" type="text" size="mini" @click="setProductAPI(scope.row)">配置此商品</el-button>
+            <el-button v-if="!goodId" type="text" size="mini" @click="showProductSelector(scope.row)">选择商品</el-button>
+          </div>
         </template>
       </el-table-column>
       <el-table-column label="操作" width="180">
@@ -187,6 +195,16 @@ import * as API_configOptions from '@/api/pjConfigOptions'
 
 export default {
   name: 'pjGoodsList',
+  props: {
+    goodId: {
+      type: Number,
+      default: 0
+    },
+    goodName: {
+      type: String,
+      default: ''
+    }
+  },
   data() {
     return {
       products: [],
@@ -242,6 +260,8 @@ export default {
           if (item.product_ids) {
             item.show_product_ids = item.product_ids.split(',')
           }
+          // 初始化商品展开状态
+          item.productsExpanded = false
         })
         this.optionList = res
       } catch (error) {
@@ -253,12 +273,12 @@ export default {
     /** 分页大小发生改变 */
     handlePageSizeChange(size) {
       this.params.page_size = size
-      this.GET_GoodsList()
+      this.loadOptions()
     },
     /** 分页页数发生改变 */
     handlePageCurrentChange(page) {
       this.params.page_no = page
-      this.GET_GoodsList()
+      this.loadOptions()
     },
     addOptionValues() {
       this.editMode = false
@@ -350,6 +370,32 @@ export default {
       }
       this.loadProducts()
     },
+    async setProductAPI(option) {
+      if (!this.goodId) {
+        this.$message.error('请先选择商品')
+        return
+      }
+      if (option.show_product_ids) {
+        this.checkIds = [...option.show_product_ids]
+        this.checkNames = [...option.show_product_names]
+      } else {
+        this.checkIds = []
+        this.checkNames = []
+      }
+      if (this.checkIds.indexOf(this.goodId + '') !== -1) {
+        this.$message.error('商品已存在')
+        return
+      }
+      this.checkIds.push(this.goodId + '')
+      this.checkNames.push(this.goodName)
+      await API_configOptions.editModel({
+        id: option.id,
+        product_ids: this.checkIds.join(','),
+        product_names: this.checkNames.join('=')
+      })
+      this.$message.success('保存成功')
+      this.loadOptions() // 重新加载列表
+    },
     handleProductSelectionChange(selection) {
       this.selectedProductIds = selection.map(item => item.id)
       this.selectedProductNames = selection.map(item => item.name)
@@ -453,6 +499,9 @@ export default {
       } catch (error) {
         this.$message.error('保存失败')
       }
+    },
+    toggleProductsExpanded(item) {
+      this.$set(item, 'productsExpanded', !item.productsExpanded)
     }
   }
 }
@@ -521,5 +570,10 @@ export default {
 .el-tag:hover {
   opacity: 0.8;
 }
+
+.product-actions {
+  display: flex;
+  align-items: center;
+}
 </style>
 

+ 12 - 46
manager-admin/src/views/pjOrder/Edit.vue

@@ -51,8 +51,8 @@
       <el-step title="已完结"></el-step>
     </el-steps>
     <el-divider></el-divider>
-    <el-tabs tab-position="left" @tab-click="pjGoodsReload">
-      <el-tab-pane label="项目信息">
+    <el-tabs tab-position="left" v-model="activeName" @tab-click="pjGoodsReload">
+      <el-tab-pane label="项目信息" name="base">
         <div class="base-info-item">
           <el-descriptions class="margin-top"  title="订单详情" :column="2" border>
             <el-descriptions-item>
@@ -144,7 +144,7 @@
           </el-form>
         </div>
       </el-tab-pane>
-      <el-tab-pane label="服务相关" v-if="boolFounder || permissions.filter(p => p === 'pjTech').length > 0">
+      <el-tab-pane label="服务相关" name="server" v-if="boolFounder || permissions.filter(p => p === 'pjTech').length > 0">
         <el-form :model="modelForm" :rules="serverFormRule" label-width="100px" ref="serverForm">
           <el-row>
             <el-col :span="12">
@@ -265,52 +265,17 @@
           </el-form-item>
         </el-form>
       </el-tab-pane>
-      <el-tab-pane label="项目产品">
-        <pj-order-items :order-no="orderNo" :type="modelForm.type"></pj-order-items>
+      <el-tab-pane label="项目产品" name="order">
+        <pj-order-items v-if="activeName === 'order'" :order-no="orderNo" :type="modelForm.type"></pj-order-items>
       </el-tab-pane>
-      <el-tab-pane label="收款明细" v-if="boolFounder || permissions.filter(p => p === 'pjReceipt').length > 0">
-        <pj-receipt :order-no="orderNo"></pj-receipt>
+      <el-tab-pane label="收款明细" name="receipt" v-if="boolFounder || permissions.filter(p => p === 'pjReceipt').length > 0">
+        <pj-receipt v-if="activeName === 'receipt'" :order-no="orderNo"></pj-receipt>
       </el-tab-pane>
-      <el-tab-pane label="生产发货情况">
-<!--        <div class="base-info-item">-->
-<!--          <el-form :model="modelForm" label-width="100px">-->
-<!--            <el-form-item label="发货人" prop="logistics_name">-->
-<!--              <el-input v-model="modelForm.logistics_name" :maxlength="20" :disabled="true"></el-input>-->
-<!--            </el-form-item>-->
-<!--            <el-form-item label="发货日期" prop="ship_date">-->
-<!--              <el-date-picker-->
-<!--                v-model="modelForm.ship_date"-->
-<!--                align="right"-->
-<!--                type="date"-->
-<!--                placeholder="选择日期"-->
-<!--                :picker-options="{disabledDate(time) { return time.getTime() >= Date.now() }}">-->
-<!--              </el-date-picker>-->
-<!--            </el-form-item>-->
-<!--            <el-form-item label="签收单:" prop="receipt_file" style="width: 90%;text-align: left;" v-if="boolFounder || permissions.filter(p => p === 'pjOrderShip').length > 0">-->
-<!--              <el-upload-->
-<!--                class="avatar-uploader"-->
-<!--                :action="`${MixinUploadApi}?scene=pjorders`"-->
-<!--                :on-preview="handlePictureCardPreview"-->
-<!--                :show-file-list="false"-->
-<!--                :before-upload="beforeAvatarUpload"-->
-<!--                :on-success="handleImageSuccess"-->
-<!--              >-->
-<!--                <img v-if="modelForm.receipt_file" :src="modelForm.receipt_file" class="avatar">-->
-<!--                <i v-else class="el-icon-plus avatar-uploader-icon"></i>-->
-<!--              </el-upload>-->
-<!--              <el-dialog :visible.sync="dialogImage">-->
-<!--                <img width="100%" :src="dialogImageUrl" alt="">-->
-<!--              </el-dialog>-->
-<!--            </el-form-item>-->
-<!--            <el-form-item v-if="boolFounder || permissions.filter(p => p === 'pjOrderShip').length > 0">-->
-<!--              <el-button type="primary" @click="handleLogisticsSave" class="save">保存</el-button>-->
-<!--            </el-form-item>-->
-<!--          </el-form>-->
-<!--        </div>-->
-        <pj-shipped-list :order-no="orderNo"></pj-shipped-list>
+      <el-tab-pane label="生产发货情况" name="shipped">
+        <pj-shipped-list v-if="activeName === 'shipped'" :order-no="orderNo"></pj-shipped-list>
       </el-tab-pane>
-      <el-tab-pane label="通用备注">
-        <pj-remark-list :table-name="'pj_order'" :table-id="keyId"></pj-remark-list>
+      <el-tab-pane label="通用备注" name="remark">
+        <pj-remark-list v-if="activeName === 'remark'" :table-name="'pj_order'" :table-id="keyId"></pj-remark-list>
       </el-tab-pane>
     </el-tabs>
   </div>
@@ -354,6 +319,7 @@ export default {
     }
 
     return {
+      activeName: 'base',
       boolFounder: JSON.parse(Storage.getItem('admin_user')).founder === 1,
       permissions: [],
       /** 加载中。。。 */

+ 13 - 1
manager-admin/src/views/pjOrder/Items.vue

@@ -80,11 +80,20 @@
           <el-table-column label="配置项" min-width="200" show-overflow-tooltip>
             <template slot-scope="scope">
               <div v-if="scope.row.config_options && scope.row.config_options.length > 0">
-                <div v-for="option in scope.row.config_options" :key="option.id" class="config-item-row">
+                <div v-for="(option, index) in scope.row.config_options" :key="option.id" class="config-item-row" v-show="index < 3 || scope.row.configExpanded">
                   <el-tag size="mini">{{ option.name }}:</el-tag>
                   <el-tag size="mini" type="info" style="margin-left: 5px">{{ option.value }}</el-tag>
                   <el-tag v-if="option.material_code" size="mini" type="warning" style="margin-left:2px;">({{ option.material_code }})</el-tag>
                 </div>
+                <div v-if="scope.row.config_options.length > 3" class="config-toggle">
+                  <el-button
+                    type="text"
+                    size="mini"
+                    @click="toggleConfigExpanded(scope.row)"
+                    style="padding: 0; margin-top: 5px;">
+                    {{ scope.row.configExpanded ? '收起' : `查看更多(${scope.row.config_options.length - 3})` }}
+                  </el-button>
+                </div>
               </div>
               <span v-else>无配置项</span>
             </template>
@@ -427,6 +436,9 @@ export default {
         }
       })
       return sums
+    },
+    toggleConfigExpanded(item) {
+      this.$set(item, 'configExpanded', !item.configExpanded)
     }
   }
 }

+ 74 - 41
manager-admin/src/views/pjOrder/OrderItems.vue

@@ -50,7 +50,7 @@
                       :src="item.image"
                       fit="cover"
                       class="item-image"
-                      @click="viewDetail(item)">
+                      @click="handlePictureCardPreview({url: item.image})">
                       <div slot="error" class="image-slot">
                         <i class="el-icon-picture-outline"></i>
                       </div>
@@ -92,15 +92,17 @@
                       <span class="label"><i class="el-icon-money"></i> 价格</span>
                       <span class="value price">¥{{ item.price }}</span>
                     </div>
-                    <div class="info-item" v-if="item.config_options && item.config_options.length > 0">
-                      <span class="label"><i class="el-icon-setting"></i> 配置项</span>
-                      <div class="value config-values">
-                        <div v-for="option in item.config_options" :key="option.id" class="config-item">
-                          <el-tag size="mini">{{ option.name }}:</el-tag>
-                          <el-tag size="mini" type="info" style="margin-left: 5px">{{ option.value }}</el-tag>
-                          <el-tag v-if="option.material_code" size="mini" type="warning" style="margin-left:2px;">({{ option.material_code }})</el-tag>
-                        </div>
-                      </div>
+                  </div>
+                </div>
+                <div class="config-section" v-if="item.config_options && item.config_options.length > 0">
+                  <div class="config-header">
+                    <span class="label"><i class="el-icon-setting"></i> 配置项</span>
+                  </div>
+                  <div class="config-values">
+                    <div v-for="option in item.config_options" :key="option.id" class="config-item">
+                      <el-tag size="mini">{{ option.name }}:</el-tag>
+                      <el-tag size="mini" type="info" style="margin-left: 5px">{{ option.value }}</el-tag>
+                      <el-tag v-if="option.material_code" size="mini" type="warning" style="margin-left:2px;">({{ option.material_code }})</el-tag>
                     </div>
                   </div>
                 </div>
@@ -362,7 +364,7 @@
                       :src="item.image"
                       fit="cover"
                       class="item-image"
-                      @click="viewDetail(item)">
+                      @click="handlePictureCardPreview({url: item.image})">
                       <div slot="error" class="image-slot">
                         <i class="el-icon-picture-outline"></i>
                       </div>
@@ -404,15 +406,17 @@
                       <span class="label"><i class="el-icon-money"></i> 价格</span>
                       <span class="value price">¥{{ item.price }}</span>
                     </div>
-                    <div class="info-item" v-if="item.config_options && item.config_options.length > 0">
-                      <span class="label"><i class="el-icon-setting"></i> 配置项</span>
-                      <div class="value config-values">
-                        <div v-for="option in item.config_options" :key="option.id" class="config-item">
-                          <el-tag size="mini">{{ option.name }}:</el-tag>
-                          <el-tag size="mini" type="info" style="margin-left: 5px">{{ option.value }}</el-tag>
-                          <el-tag v-if="option.material_code" size="mini" type="warning" style="margin-left:2px;">({{ option.material_code }})</el-tag>
-                        </div>
-                      </div>
+                  </div>
+                </div>
+                <div class="config-section" v-if="item.config_options && item.config_options.length > 0">
+                  <div class="config-header">
+                    <span class="label"><i class="el-icon-setting"></i> 配置项</span>
+                  </div>
+                  <div class="config-values">
+                    <div v-for="option in item.config_options" :key="option.id" class="config-item">
+                      <el-tag size="mini">{{ option.name }}:</el-tag>
+                      <el-tag size="mini" type="info" style="margin-left: 5px">{{ option.value }}</el-tag>
+                      <el-tag v-if="option.material_code" size="mini" type="warning" style="margin-left:2px;">({{ option.material_code }})</el-tag>
                     </div>
                   </div>
                 </div>
@@ -682,11 +686,20 @@
             <el-table-column label="配置项" min-width="200" show-overflow-tooltip>
               <template slot-scope="scope">
                 <div v-if="scope.row.config_options && scope.row.config_options.length > 0">
-                  <div v-for="option in scope.row.config_options" :key="option.id" class="config-item-row">
+                  <div v-for="(option, index) in scope.row.config_options" :key="option.id" class="config-item-row" v-show="index < 3 || scope.row.configExpanded">
                     <el-tag size="mini">{{ option.name }}:</el-tag>
                     <el-tag size="mini" type="info" style="margin-left: 5px">{{ option.value }}</el-tag>
                     <el-tag v-if="option.material_code" size="mini" type="warning" style="margin-left:2px;">({{ option.material_code }})</el-tag>
                   </div>
+                  <div v-if="scope.row.config_options.length > 3" class="config-toggle">
+                    <el-button
+                      type="text"
+                      size="mini"
+                      @click="toggleConfigExpanded(scope.row)"
+                      style="padding: 0; margin-top: 5px;">
+                      {{ scope.row.configExpanded ? '收起' : `查看更多(${scope.row.config_options.length - 3})` }}
+                    </el-button>
+                  </div>
                 </div>
                 <span v-else>无配置项</span>
               </template>
@@ -843,22 +856,15 @@ export default {
       tableSearchQuery: '',
       configSelectVisible: false,
       currentConfigOptions: [],
-      currentEditItem: null
+      currentEditItem: null,
+      expandedConfigs: new Set()
     }
   },
   mounted() {
     if (!this.boolFounder) {
       this.permissions = JSON.parse(Storage.getItem('permissions'))
     }
-  },
-  activated() {
-  },
-  watch: {
-    orderNo(val) {
-      if (val) {
-        this.getData()
-      }
-    }
+    this.getData()
   },
   computed: {
     filteredBaseDevice() {
@@ -909,6 +915,8 @@ export default {
           if (item.config_data) {
             item.config_options = JSON.parse(item.config_data)
           }
+          // 初始化配置项展开状态
+          item.configExpanded = false
         })
         this.listData = res.data
         this.baseDevice = this.listData.filter(p => p.type_base)
@@ -1195,7 +1203,7 @@ export default {
       return this.boolFounder || this.permissions.some(p => p === 'pjTech')
     },
     canEditProduce(item) {
-      return this.boolFounder || this.permissions.some(p => p === 'pjOrderShip')
+      return this.boolFounder || this.permissions.some(p => p === 'draftEdit')
     },
     hasPermission(permissions) {
       return this.boolFounder || this.permissions.some(p => permissions.includes(p))
@@ -1212,6 +1220,9 @@ export default {
       if (qty <= 0) return 'success'
       if (qty <= 5) return 'warning'
       return 'danger'
+    },
+    toggleConfigExpanded(item) {
+      this.$set(item, 'configExpanded', !item.configExpanded)
     }
   }
 }
@@ -1404,6 +1415,28 @@ export default {
         }
       }
     }
+
+    .config-section {
+      margin-top: 10px;
+      background: #f8f9fa;
+      border-radius: 8px;
+      padding: 10px 10px 10px 10px;
+      display: flex;
+      flex-direction: column;
+      justify-content: flex-start;
+      align-items: flex-start;
+      box-shadow: 0 1px 4px rgba(0,0,0,0.03);
+      .config-header {
+        margin-bottom: 10px;
+        font-weight: bold;
+      }
+      .config-values {
+        display: flex;
+        flex-direction: row;
+        flex-wrap: wrap;
+        gap: 5px;
+      }
+    }
   }
 }
 
@@ -1554,16 +1587,16 @@ export default {
   }
 }
 
-.config-values {
-  display: flex;
-  flex-direction: column;
-  gap: 5px;
+.config-toggle {
+  margin-top: 8px;
 
-  .config-item {
-    display: flex;
-    align-items: center;
-    flex-wrap: wrap;
-    gap: 5px;
+  .el-button {
+    color: #409EFF;
+    font-size: 12px;
+
+    &:hover {
+      color: #66b1ff;
+    }
   }
 }
 

+ 2 - 6
manager-admin/src/views/pjOrder/Receipt.vue

@@ -121,12 +121,8 @@ export default {
       modelFormRule: {}
     }
   },
-  watch: {
-    orderNo(val) {
-      if (val) {
-        this.GET_List()
-      }
-    }
+  mounted() {
+    this.GET_List()
   },
   methods: {
     handleAdd() {

+ 0 - 10
manager-admin/src/views/pjOrder/Remark.vue

@@ -117,16 +117,6 @@ export default {
   mounted() {
     this.GET_List()
   },
-  activated() {
-    this.GET_List()
-  },
-  watch: {
-    tableId(val) {
-      if (val) {
-        this.GET_List()
-      }
-    }
-  },
   methods: {
     /** 分页大小发生改变 */
     handlePageSizeChange(size) {

+ 7 - 7
manager-admin/src/views/pjOrder/shipped.vue

@@ -274,13 +274,13 @@ export default {
     }
     this.GET_List()
   },
-  watch: {
-    orderNo(val) {
-      if (val) {
-        this.GET_List()
-      }
-    }
-  },
+  // watch: {
+  //   orderNo(val) {
+  //     if (val) {
+  //       this.GET_List()
+  //     }
+  //   }
+  // },
   methods: {
     /** 分页大小发生改变 */
     handlePageSizeChange(size) {