Ver código fonte

优化没有加到配置项的界面

wenningning 3 dias atrás
pai
commit
74a6df6b66

+ 4 - 9
manager-admin/src/views/goods/goodsDetail.vue

@@ -94,15 +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">
-                <el-tag
-                  v-for="value in option.option_values"
-                  :key="value.id"
-                  size="small"
-                  :type="value.status === 1 ? 'success' : 'info'"
-                  style="margin-right: 5px; margin-bottom: 5px;"
-                >
-                  {{ value.value }}
-                </el-tag>
+                <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>
             </div>
           </div>

+ 4 - 9
manager-admin/src/views/goods/goodsEdit.vue

@@ -138,15 +138,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">
-                <el-tag
-                  v-for="value in option.option_values"
-                  :key="value.id"
-                  size="small"
-                  :type="value.status === 1 ? 'success' : 'info'"
-                  style="margin-right: 5px; margin-bottom: 5px;"
-                >
-                  {{ value.value }}
-                </el-tag>
+                <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>
             </div>
           </div>

+ 22 - 0
manager-admin/src/views/pjOrder/ItemDetail.vue

@@ -46,6 +46,25 @@
         <img :src="modelForm.image" style="width: 120px;height: 120px;" @click="handlePictureCardPreview({ url: modelForm.image})">
       </el-descriptions-item>
     </el-descriptions>
+    <el-row v-if="modelForm.config_options && modelForm.config_options.length > 0">
+      <el-col :span="24">
+        <el-form label-width="100px" ref="goodsForm">
+          <el-form-item label="产品配置项:" class="config-options">
+            <div class="info-item">
+              <span class="label"><i class="el-icon-setting"></i> 配置项</span>
+              <div class="value config-values">
+                <div v-for="option in modelForm.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>
+          </el-form-item>
+        </el-form>
+      </el-col>
+    </el-row>
+
     <el-row>
       <el-col :span="12">
         <el-divider>生产情况<el-button v-if="boolFounder || permissions.filter(p => p === 'pjOrderItemsList').length > 0" type="text" icon="el-icon-edit-outline" @click="handleProduceSave">保存</el-button></el-divider>
@@ -228,6 +247,9 @@ export default {
   methods: {
     getData() {
       API_orderItems.getModel(this.keyId).then(res => {
+        if (res.config_data) {
+          res.config_options = JSON.parse(res.config_data)
+        }
         this.modelForm = res
         if (this.modelForm.ship_date_required) {
           this.modelForm.ship_date_required *= 1000

+ 33 - 0
manager-admin/src/views/pjOrder/Items.vue

@@ -9,6 +9,7 @@
         :loading="loading"
         tooltip-effect="dark"
         show-summary
+        border
         :summary-method="getSummaries"
         @selection-change="handleSelectionChange"
       >
@@ -76,6 +77,18 @@
               <el-button round size="mini" @click="gotoGoods(scope.row.good_id)">{{ scope.row.no }}</el-button>
             </template>
           </el-table-column>
+          <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">
+                  <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>
+              <span v-else>无配置项</span>
+            </template>
+          </el-table-column>
           <el-table-column prop="good_type" label="类型" width="100"></el-table-column>
           <el-table-column v-if="params.type === '2'" label="总需数量" prop="count1"></el-table-column>
           <el-table-column v-if="params.type === '2'" label="已产数量" prop="count2"></el-table-column>
@@ -223,11 +236,21 @@ export default {
       if (this.params.type > 1) {
         API_orderItems.getPageGroupList(this.params).then(response => {
           this.loading = false
+          response.data.map(item => {
+            if (item.config_data) {
+              item.config_options = JSON.parse(item.config_data)
+            }
+          })
           this.tableData = response
         }).catch(() => (this.loading = false))
       } else {
         API_orderItems.getPageList(this.params).then(response => {
           this.loading = false
+          response.data.map(item => {
+            if (item.config_data) {
+              item.config_options = JSON.parse(item.config_data)
+            }
+          })
           this.tableData = response
         }).catch(() => (this.loading = false))
       }
@@ -446,6 +469,16 @@ export default {
     }
   }
 }
+.config-item-row {
+  margin-bottom: 5px;
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+
+  &:last-child {
+    margin-bottom: 0;
+  }
+}
 .el-select {
   width: 130px;
 }

+ 8 - 8
manager-admin/src/views/pjOrder/OrderItems.vue

@@ -1101,13 +1101,13 @@ export default {
         if (configRes) {
           // 保存当前编辑项
           this.currentEditItem = {
-        good_id: list[0].id,
-        name: list[0].name,
-        code: list[0].code,
-        no: list[0].no,
-        image: list[0].image,
-        id: this.changeId
-      }
+            good_id: list[0].id,
+            name: list[0].name,
+            code: list[0].code,
+            no: list[0].no,
+            image: list[0].image,
+            id: this.changeId
+          }
           // 设置配置项
           this.currentConfigOptions = configRes.map(option => ({
             ...option,
@@ -1151,7 +1151,7 @@ export default {
         this.$message.success('保存成功!')
         this.getData()
         this.configSelectVisible = false
-      this.goodsSelectVisible = false
+        this.goodsSelectVisible = false
       })
     },