970319330@qq.com 1 hari lalu
induk
melakukan
c27b72f551

TEMPAT SAMPAH
.DS_Store


+ 4 - 0
src/HDrpManagement/ProductMag/detail/index.vue

@@ -187,6 +187,10 @@ export default {
           label:'erp品名',
           value:this.mainData.erpitemname
         },
+        {
+          label:'erp备用品号',
+          value:this.mainData.erpitemno2
+        },
         {
           label:'领域',
           value:this.mainData.tradefield.map(item => item.tradefield).join(',')

+ 1 - 0
src/HDrpManagement/ProductMag/detail/modules/detailedData.vue

@@ -8,6 +8,7 @@
         <el-descriptions-item  :label="$t('状态')"><span :style="tool.getStatusColor(basic.status)">{{ $t(basic.status)}}</span></el-descriptions-item>
         <el-descriptions-item :label="$t('erp品号')">{{ basic.erpitemno || '--'}}</el-descriptions-item>
         <el-descriptions-item  :label="$t(`erp品名`)">{{ basic.erpitemname || '--'}}</el-descriptions-item>
+        <el-descriptions-item  :label="$t(`erp备用品号`)">{{ basic.erpitemno2 || '--'}}</el-descriptions-item>
 <!--        <el-descriptions-item  :label="$t(`外形尺寸`)">长:{{ basic.length}};宽:{{basic.width}};高:{{basic.height}}</el-descriptions-item>-->
         <el-descriptions-item  :label="$t(`上/下架`)"><span :style="{color:basic.isonsale ? tool.getStatusColor('上架',true) : tool.getStatusColor('下架',true)}">{{ basic.isonsale ? $t('上架') : $t('下架')}}</span></el-descriptions-item>
         <el-descriptions-item  :label="$t('型号')">{{ basic.model || '--'}}</el-descriptions-item>

+ 0 - 1
src/HDrpManagement/ProductMag/detail/modules/productInfo.vue

@@ -63,7 +63,6 @@ export default {
       const res = await this.$api.requested(this.params)
       this.list = res.data
       this.total = res.total
-      console.log(this.list)
     },
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);

+ 6 - 0
src/HDrpManagement/ProductMag/modules/add.vue

@@ -25,6 +25,12 @@
                 <el-input :disabled="calcDisabled" v-model="form.erpitemname" :placeholder="$t(`请输入erp品名`)"></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`erp备用品号`)" prop="erpitemname2">
+                <el-input :disabled="calcDisabled" v-model="form.erpitemno2" :placeholder="$t(`请输入erp品名`)"></el-input>
+              </el-form-item>
+            </el-col>
+            
             <el-col :span="12">
               <el-form-item :label="$t('型号')" prop="model">
                 <el-input v-model="form.model" :placeholder="$t(`输入产品型号`)"></el-input>

+ 5 - 0
src/HDrpManagement/ProductMag/modules/edit.vue

@@ -25,6 +25,11 @@
                 <el-input :disabled="calcDisabled" v-model="form.erpitemname" :placeholder="$t(`请输入erp品名`)"></el-input>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item :label="$t(`erp备用品号`)" prop="erpitemname2">
+                <el-input :disabled="calcDisabled" v-model="form.erpitemno2" :placeholder="$t(`请输入erp品名`)"></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="12">
               <el-form-item :label="$t('型号')" prop="model">
                 <el-input v-model="form.model" :placeholder="$t(`输入产品型号`)"></el-input>

+ 6 - 1
src/HDrpManagement/orderManage/details/index.vue

@@ -133,8 +133,10 @@
             <importFile v-if="mainData.status == '新建'" ref="importFile" class="inline-16" :bindData="{ownertable:'sa_order',ownerid:$route.query.id,usetype:'default'}" :ordertype="mainData.type" :errorUrl="errorUrl" @clearUrl="errorUrl = null" @onSuccess="bindImportOrder"></importFile>
             <changeOrderMx v-if="mainData.status === '审核'" :tableData="selection" class="inline-16" :data="mainData" @onSuccess="$refs['prod'].listData();queryMainData"></changeOrderMx>
             <el-button :disabled="mainData.status !== '审核' || selection.length === 0"  size="small" type="primary" style="margin-bottom:12px;margin-right: 10px" @click="adddispatch">{{$t(`一键发货`)}}</el-button>
+            <el-button v-if="tool.checkAuth($route.name,'changeItemno') && (mainData.status === '提交' || mainData.status === '交期待确认' || mainData.status === '交期确认')" :disabled="selection.length === 0"  size="small" type="primary" style="margin-bottom:12px;margin-right: 10px" @click="replaceVisible = true">{{$t(`替换品号`)}}</el-button>
           </div>
         </product-list>
+        <replaceItemno :visible.sync="replaceVisible" :data="mainData" :selection="selection" @onSuccess="queryMainData()" />
       </div>
       <div slot="slot2">
         <orderprogress></orderprogress>
@@ -215,6 +217,7 @@ import dialogTemplate from "@/template/dialogTemplate/index";
 import setMaterial from "./tabs/setMaterial";
 import orderChange from "@/components/dialogTemplate/index4"
 import dialogOrder from "@/components/dialogTemplate/index1"
+import replaceItemno from '../modules/replaceItemno'
 export default {
   name: "detail",
   data() {
@@ -229,6 +232,7 @@ export default {
       value:'',
       selection:[],
       errorUrl:null,
+      replaceVisible:false,
       rebateamount:'',
       isusedrebate:'',
       checked:0,
@@ -289,7 +293,8 @@ export default {
     dialogTemplate,
     setMaterial,
     orderChange,
-    dialogOrder
+    dialogOrder,
+    replaceItemno
   },
   methods:{
     async orderreviewtype () {

+ 104 - 0
src/HDrpManagement/orderManage/modules/replaceItemno.vue

@@ -0,0 +1,104 @@
+<template>
+  <el-dialog title="替换品号" :visible.sync="dialogVisible" width="900px" append-to-body @open="listData" @close="onClose">
+    <el-table
+      ref="multipleTable"
+      :data="replaceList"
+      style="width: 100%"
+      border
+      size="small"
+      @selection-change="onSelectionChange">
+      <el-table-column type="selection" width="55" align="center"></el-table-column>
+      <el-table-column prop="itemname" label="产品名称" min-width="160"></el-table-column>
+      <el-table-column prop="itemno" label="产品编号" min-width="120"></el-table-column>
+      <el-table-column prop="erpitemno" label="erp品号" min-width="120"></el-table-column>
+      <el-table-column prop="erpitemno2" label="替换品号" min-width="120"></el-table-column>
+      <el-table-column prop="model" label="型号" min-width="120"></el-table-column>
+      <el-table-column prop="spec" label="规格" min-width="120"></el-table-column>
+    </el-table>
+    <span slot="footer">
+      <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+      <el-button size="small" type="primary" @click="onSubmit">确 定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+export default {
+  props: {
+    visible: Boolean,
+    data: Object,
+    selection: Array
+  },
+  computed: {
+    dialogVisible: {
+      get() { return this.visible },
+      set(val) { this.$emit('update:visible', val) }
+    }
+  },
+  data() {
+    return {
+      replaceList: [],
+      selectedRows: []
+    }
+  },
+  methods: {
+    async listData() {
+      if (!this.selection || this.selection.length === 0) return
+      const itemids = this.selection.map(e => e.itemid)
+      const res = await this.$api.requested({
+        id: 2026051315322802,
+        content: { itemids }
+      })
+      this.replaceList = res.data || []
+    },
+    onSelectionChange(selection) {
+      this.selectedRows = selection
+    },
+    async onSubmit() {
+      if (this.selectedRows.length === 0) {
+        this.$message.warning('请选择要替换的品号')
+        return
+      }
+      const items = []
+      let hasEmpty = false
+      for (const row of this.selectedRows) {
+        if (!row.erpitemno2) {
+          this.$message.warning(`${row.itemname || '未知'}不存在备用品号,不进行替换`)
+          hasEmpty = true
+          continue
+        }
+        const matchedLines = this.selection.filter(s => s.itemid === row.itemid)
+        for (const line of matchedLines) {
+          items.push({
+            sa_orderitemsid: line.sa_orderitemsid,
+            itemno: line.itemno,
+            erpitemno: row.erpitemno2
+          })
+        }
+      }
+      if (items.length === 0) {
+        if (!hasEmpty) {
+          this.$message.warning('没有可替换的品号')
+        }
+        return
+      }
+      const res = await this.$api.requested({
+        id: 2026051315353402,
+        content: {
+          sa_orderid: this.data.sa_orderid,
+          items
+        }
+      })
+      this.tool.showMessage(res, () => {
+        this.$message.success('替换成功')
+        this.dialogVisible = false
+        this.$emit('onSuccess')
+      })
+    },
+    onClose() {
+      this.replaceList = []
+      this.selectedRows = []
+    }
+  }
+}
+</script>

+ 1 - 1
src/HManagement/marketing2/agent/details/index.vue

@@ -56,7 +56,7 @@
           delType="合作伙伴"
           v-if="mainData.status == '禁用' && tool.checkAuth($route.name,'delete')"
         />
-        <el-button v-if="tool.checkAuth($route.name,'constructionLog')" size="small" type="primary" @click="$refs.constLog.openDrawer()" class="inline-16">{{ $t('施工日志模板') }}</el-button>
+        <el-button v-if="tool.checkAuth($route.name,'constructionLog')" size="mini" type="primary" @click="$refs.constLog.openDrawer()" class="inline-16">{{ $t('施工日志模板') }}</el-button>
     </div>
     <div slot="slot0">
       <el-button v-if="tool.checkAuth($route.name,'agentTeamTable')" size="small" type="primary" @click="createAgentAccount" class="normal-margin">{{ $t('创建团队账号') }}</el-button>

+ 12 - 10
src/HManagement/marketing2/agent/details/modules/constructionLog/index.vue

@@ -5,11 +5,11 @@
     size="600px"
     append-to-body
     :before-close="handleClose">
-    <div style="padding: 20px">
+    <div class="drawer__panel">
       <!-- 企业 Logo -->
       <div class="construction-card" shadow="never">
         <div slot="header" class="card-header">
-          <span>{{ $t('企业 Logo') }}</span>
+          <p class="normal-title normal-margin">{{ $t('企业 Logo') }}</p>
         </div>
         <div class="logo-section">
           <template v-if="logoList.length > 0">
@@ -39,17 +39,16 @@
       </div>
 
       <!-- 结束语模版 -->
-      <div class="construction-card" shadow="never">
-        <div slot="header" class="card-header">
-          <span>{{ $t('结束语模版') }}</span>
+      <div class="construction-card top-30" shadow="never">
+        <div slot="header" class="card-header mt-10">
+          <p class="normal-title normal-margin">{{ $t('结束语模版') }}</p>
         </div>
         <Editor ref="editor" :id="editorId" :content="closingStatement" height="300px"></Editor>
       </div>
-
-      <!-- 保存 -->
-      <div style="text-align: center; margin-top: 20px">
-        <el-button type="primary" @click="save" :loading="saving">{{ $t('保存') }}</el-button>
-      </div>
+    </div>
+    <div class="fixed__btn__panel">
+      <el-button size="small" @click="handleClose">{{ $t('取消') }}</el-button>
+      <el-button size="small" type="warning" @click="save" :loading="saving" class="normal-btn-width btn-warning">{{ $t('保存') }}</el-button>
     </div>
   </el-drawer>
 </template>
@@ -165,4 +164,7 @@ export default {
   font-size: 12px;
   margin-top: 10px;
 }
+.top-30{
+  margin-top: 30px;
+}
 </style>