qymljy 1 년 전
부모
커밋
5664cf29f8

+ 154 - 0
src/WebsiteManagement/marketproductMag/modules/detailCopy1.vue

@@ -0,0 +1,154 @@
+<template>
+  <detailTemplate
+      @detailClick="detailClick"
+      :mainAreaData="mainAreaData"
+      :richText="richText"
+  ></detailTemplate>
+</template>
+
+<script>
+import edit from "./edit";
+import detailTemplate from "@/template/websiteTemplate/detailTemplate";
+export default {
+  name: "detail",
+  props: ["data"],
+  components: { edit,detailTemplate },
+  data() {
+    return {
+      dialogFormVisible: false,
+      detailInfo: [],
+      mainAreaData:{},
+      mainAData:{},
+      richText:[]
+    };
+  },
+  methods: {
+    async detailClick() {
+      const res = await this.$api.requested({
+        id: "20240920101403",
+        content: {
+          siteid: JSON.parse(sessionStorage.getItem("active_account")).siteid,
+          sa_fadid: this.data.data.sa_fadid,
+        },
+      });
+     /* this.detailInfo = res.data;*/
+      this.mainAData = Object.assign({},this.mainAData,res.data)
+      this.changeDataStructure()
+      this.richText = [
+        {
+          title:'技术参数',
+          ref:'technicalparam'
+        },
+        {
+          title:'材质说明',
+          ref:'materialdescription'
+        },
+        {
+          title:'产品概述',
+          ref:'contentstr'
+        }
+      ]
+     /* this.$refs.technicalparam.innerHTML = res.data.technicalparam;
+      this.$refs.materialdescription.innerHTML = res.data.materialdescription;
+      this.$refs.contentstr.innerHTML = res.data.content;*/
+    },
+    changeDataStructure(){
+      let that = this
+      this.mainAreaData = [
+        {
+          label:'商品名称',
+          value: this.mainData.itemname
+        },
+        {
+          label:'分类',
+          value: this.mainData.class
+        },
+        {
+          label:'状态',
+          value: this.mainData.itemname,
+          style:function () {
+            let style = {}
+            switch (that.mainData.reportstatus) {
+              case '新建':
+                style = {color:'#3874f6'}
+                break;
+              case '发布':
+                style = {color:'#52c41a'}
+                break;
+              default:
+                break;
+            }
+            return style
+
+          }
+        },
+        {
+          label:'创建时间',
+          value: this.mainData.createdate
+        },
+      ]
+    },
+    async statusChange() {
+      const res = await this.$api.requested({
+        id: "20240920101603",
+        content: {
+          siteid: JSON.parse(sessionStorage.getItem("active_account")).siteid,
+          sa_fadids: [this.detailInfo.sa_fadid],
+          isonsale: this.detailInfo.isonsale == 0 ? 1 : 0,
+        },
+      });
+      this.tool.showMessage(res, () => {
+        this.detailClick();
+      });
+    },
+    deleteClick() {
+      this.$confirm("此操作将删除该营销产品, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(async () => {
+          const res = await this.$api.requested({
+            id: "20240920101503",
+            content: {
+              siteid: JSON.parse(sessionStorage.getItem("active_account"))
+                .siteid,
+              sa_fadids: [this.detailInfo.sa_fadid],
+            },
+          });
+          this.tool.showMessage(res, () => {
+            this.onClose();
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+    onClose() {
+      this.dialogFormVisible = false;
+      this.$emit("onClose");
+    },
+  },
+};
+</script>
+
+<style scoped>
+.content_style {
+  border: 1px solid #9ca3af;
+  margin-top: 10px;
+  max-height: 500px;
+  width: 100%;
+  overflow: auto;
+}
+
+.fwb {
+  padding: 10px;
+}
+
+/deep/.fwb p img {
+  width: 100%;
+}
+</style>

+ 12 - 7
src/WebsiteManagement/serviceAppointMag/detail/index.vue

@@ -20,6 +20,7 @@
           class="inline-16"
           message="确定将预约单转服务申请单吗"
           @onSuccess="queryMainData($route.query.id)"
+          :sonum="SNOrder"
           :data="mainData"
         ></transferService>
       </div>
@@ -80,6 +81,7 @@ export default {
       mainAreaData: {},
       mainData: {},
       isShowSn: true,
+      SNOrder:'',
       SNParam: {
         id: "20240902134203",
         content: {
@@ -120,6 +122,7 @@ export default {
         },
       });
       this.mainData = Object.assign({}, this.mainData, res.data);
+
       this.changeDataStructure();
     },
     changeDataStructure() {
@@ -216,16 +219,18 @@ export default {
       });
     },
     listData(data) {
-      data.length > 0 ? (this.isShowSn = true) : (this.isShowSn = false);
+      if (data.length > 0){
+        this.isShowSn = true
+        this.SNOrder = data[0].sonum
+        this.queryMainData(this.$route.query.id)
+      }else {
+        this.isShowSn = false
+        this.queryMainData(this.$route.query.id)
+      }
     },
   },
   mounted() {
-    this.queryMainData(this.$route.query.id);
-  },
-  created() {
-    this.SNTablecols = this.tool.tabelCol(this.$route.name)[
-      "accountMoneyDetailTable"
-    ].tablecols;
+    /*this.queryMainData(this.$route.query.id);*/
   },
 };
 </script>

+ 47 - 56
src/WebsiteManagement/serviceAppointMag/modules/transferService.vue

@@ -24,21 +24,12 @@
             >
               <el-col :span="12">
                 <el-form-item label="企业名称:" prop="enterprisename">
-                  <selectAgent
-                    :customParam="agentParam"
-                    ref="agent"
-                    @selectRow="agentChange"
-                    qiyi="企业名称"
-                  >
-                    <el-input
-                      readonly
-                      type="text"
-                      slot="input"
-                      size="mini"
-                      @focus="$refs.agent.visible = true"
-                      v-model="form.enterprisename"
-                    ></el-input>
-                  </selectAgent>
+                  <el-input
+                    disabled
+                    type="text"
+                    size="mini"
+                    v-model="form.enterprisename"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -50,6 +41,7 @@
                     placeholder="请选择状态"
                     size="mini"
                     clearable
+                    disabled
                   >
                     <el-option
                       v-for="(item, index) in serveClassList"
@@ -62,26 +54,14 @@
               </el-col>
               <el-col
                 :span="12"
-                v-if="form.servicetype == '售中' || form.servicetype == '售后'"
               >
                 <el-form-item label="订单号:" prop="sonum">
-                  <selectOrder
-                    :id="form.sys_enterpriseid"
-                    ref="order"
-                    @selectRow="orderChange"
-                  >
-                    <el-input
-                      readonly
-                      :disabled="!form.sys_enterpriseid"
-                      type="text"
-                      slot="input"
-                      size="mini"
-                      @focus="
-                        $refs.order.listData(), ($refs.order.visible = true)
-                      "
-                      v-model="form.sonum"
-                    ></el-input>
-                  </selectOrder>
+                  <el-input
+                    disabled
+                    type="text"
+                    size="mini"
+                    v-model="form.sonum"
+                  ></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -90,6 +70,7 @@
                     v-model="form.billdate"
                     type="date"
                     value-format="yyyy-MM-dd"
+                    disabled
                     placeholder="选择日期"
                   >
                   </el-date-picker>
@@ -100,6 +81,7 @@
                   <el-cascader
                     size="mini"
                     v-model="form.province"
+                    disabled
                     :options="basicData.data().areaData"
                     ref="cascader"
                   >
@@ -111,10 +93,11 @@
                   <el-input
                     v-model="form.address"
                     placeholder="请输入地址"
+                    disabled
                   ></el-input>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
+<!--              <el-col :span="12">
                 <el-form-item label="服务联系人" prop="scenecontact">
                   <el-input
                     v-model="form.scenecontact"
@@ -129,7 +112,7 @@
                     placeholder="请输入联系人角色"
                   ></el-input>
                 </el-form-item>
-              </el-col>
+              </el-col>-->
               <el-col :span="12">
                 <el-form-item
                   label="服务联系电话"
@@ -137,6 +120,7 @@
                 >
                   <el-input
                     v-model="form.scenecontactphonenumber"
+                    disabled
                     placeholder="请输入服务联系电话"
                   ></el-input>
                 </el-form-item>
@@ -150,6 +134,7 @@
                     placeholder="请选择应用系统"
                     size="mini"
                     clearable
+                    disabled
                   >
                     <el-option
                       v-for="(item, index) in systemapp"
@@ -169,6 +154,7 @@
                     placeholder="请选择客诉大类"
                     size="mini"
                     clearable
+                    disabled
                   >
                     <el-option
                       v-for="(item, index) in customerclass"
@@ -179,7 +165,7 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
+<!--              <el-col :span="12">
                 <el-form-item label="申请原因" prop="reason">
                   <el-input
                     v-model="form.reason"
@@ -208,13 +194,14 @@
                   >
                   </el-date-picker>
                 </el-form-item>
-              </el-col>
+              </el-col>-->
               <el-col :span="12">
                 <el-form-item label="备注" prop="remarks">
                   <el-input
                     type="textarea"
                     v-model="form.remarks"
                     placeholder="请输入备注"
+                    disabled
                   ></el-input>
                 </el-form-item>
               </el-col>
@@ -240,7 +227,7 @@ import selectAgent from "@/template/selectAgent/index";
 import selectOrder from "@/HDrpManagement/serveBillMag/components/selectOrder";
 export default {
   name: "transferService",
-  props: ["btnTitle", "message", "data"],
+  props: ["btnTitle", "message", "data","sonum"],
   components: { dialogTemplate, selectAgent, selectOrder },
   data() {
     return {
@@ -272,14 +259,14 @@ export default {
       },
       rules: {
         servicetype: [
-          { required: true, message: "请选择服务类型", trigger: "change" },
+          { required: false, message: "请选择服务类型", trigger: "change" },
         ],
         enterprisename: [
-          { required: true, message: "请选择经销商", trigger: "change" },
+          { required: false, message: "请选择经销商", trigger: "change" },
         ],
-        sonum: [{ required: true, message: "请选择订单", trigger: "change" }],
+        sonum: [{ required: false, message: "请选择订单", trigger: "change" }],
         scenecontactphonenumber: [
-          { required: true, message: "请填写手机号码", trigger: "blur" },
+          { required: false, message: "请填写手机号码", trigger: "blur" },
           {
             pattern: /^1[3-9][0-9]\d{8}$/,
             message: "请输入正确手机号码",
@@ -287,23 +274,23 @@ export default {
           },
         ],
         province: [
-          { required: true, message: "请选择省市县", trigger: "change" },
+          { required: false, message: "请选择省市县", trigger: "change" },
         ],
-        address: [{ required: true, message: "请填写地址", trigger: "blur" }],
+        address: [{ required: false, message: "请填写地址", trigger: "blur" }],
         scenecontact: [
-          { required: true, message: "服务联系人", trigger: "blur" },
+          { required: false, message: "服务联系人", trigger: "blur" },
         ],
         scenecontactrole: [
-          { required: true, message: "联系人角色", trigger: "blur" },
+          { required: false, message: "联系人角色", trigger: "blur" },
         ],
-        class1: [{ required: true, message: "应用系统", trigger: "change" }],
-        class2: [{ required: true, message: "客诉大类", trigger: "change" }],
-        reason: [{ required: true, message: "申请原因", trigger: "blur" }],
+        class1: [{ required: false, message: "应用系统", trigger: "change" }],
+        class2: [{ required: false, message: "客诉大类", trigger: "change" }],
+        reason: [{ required: false, message: "申请原因", trigger: "blur" }],
         begdate: [
-          { required: true, message: "需求服务开始日期", trigger: "change" },
+          { required: false, message: "需求服务开始日期", trigger: "change" },
         ],
         enddate: [
-          { required: true, message: "需求服务结束日期", trigger: "change" },
+          { required: false, message: "需求服务结束日期", trigger: "change" },
         ],
       },
       agentParam: {
@@ -334,12 +321,12 @@ export default {
       })
         .then(async () => {
           this.title = "转服务申请单";
-          console.log(this.data, "data====");
+          this.sonum?this.form.sonum = this.sonum : this.form.sonum = ''
           this.form = Object.assign({}, this.form, this.data);
-          console.log(this.form, "form");
+          this.form.province = [this.form.province,this.form.city,this.form.county]
           this.$refs.dialogRef.dialogVisible = true;
-          this.getServeClass();
-          const res = await this.$store.dispatch(
+        /*  this.getServeClass();*/
+          /*const res = await this.$store.dispatch(
             "optiontypeselect",
             "customerclass"
           );
@@ -348,7 +335,7 @@ export default {
             "optiontypeselect",
             "systemapp"
           );
-          this.systemapp = res1.data;
+          this.systemapp = res1.data;*/
         })
         .catch((action) => {
           if (action === "cancel") {
@@ -373,6 +360,10 @@ export default {
               sys_enterpriseid: this.form.sys_enterpriseid, //服务预约单中sys_enterpriseid为0时,此时sys_enterpriseid必传
             },
           });
+          if (res.code == 0){
+            this.$refs.dialogRef.loading = false
+            this.tool.showMessage(res,() => {})
+          }
           this.tool.showMessage(res, () => {
             this.$refs.dialogRef.loading = false;
             this.$refs.dialogRef.dialogVisible = false;

+ 87 - 5
src/template/websiteTemplate/detailTemplate.vue

@@ -8,7 +8,7 @@
     >
     <el-drawer
         title="详情"
-        :visible.sync="dialogFormVisible"
+        :visible.sync="drawerVisible"
         size="60%"
         direction="rtl"
         append-to-body
@@ -28,6 +28,61 @@
           </el-descriptions-item>
         </el-descriptions>
       </div>
+      <div v-if="isCover">
+        <p style="font-size: 14px">{{cover.title}}</p>
+        <div style="margin-top: 10px">
+          <previewImage
+              v-if="cover"
+              style="width: 256px"
+              :image="cover.image"
+              @onSuccess="clearCover"
+          ></previewImage>
+        </div>
+      </div>
+      <div v-if="isTable">
+        <div style="font-size: 16px; font-weight: bold; margin-bottom: 10px">
+          {{table.title}}
+        </div>
+        <tableNewLayout
+            ref="tableRef"
+            :checkbox="false"
+            :custom="true"
+            :data="list"
+            :layout="tablecols"
+            :opwidth="200"
+            :width="true"
+            height="300px"
+        >
+          <template v-slot:customcol="scope">
+            <div v-if="scope.column.columnname === 'itemclassfullname'">
+              {{
+                scope.column.data.itemclass
+                    ? scope.column.data.itemclass.length > 0
+                        ? scope.column.data.itemclass[0].itemclassfullname
+                        : ""
+                    : ""
+              }}
+            </div>
+            <p v-else>{{ scope.column.data[scope.column.columnname] }}</p>
+          </template>
+          <template v-slot:opreation="scope">
+            <el-button type="text" disabled>删除</el-button>
+          </template>
+        </tableNewLayout>
+        <div class="container normal-panel" style="text-align: right">
+          <el-pagination
+              background
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="currentPage"
+              :page-sizes="[20, 50, 100, 200]"
+              :page-size="20"
+              layout="total,sizes, prev, pager, next, jumper"
+              :total="total"
+          >
+          </el-pagination>
+        </div>
+      </div>
       <div class="drawer__panel">
         <div v-for="item in richText">
           <p style="font-size: 14px">{{item.title}}</p>
@@ -41,12 +96,17 @@
 </template>
 
 <script>
+import previewImage from "@/components/previewImage/index.vue";
 export default {
   name: "detailTemplate",
-  props:['column','mainAreaData','mainAData','richText'],
+  props:['column','mainAreaData','mainAData','richText','isCover','cover','isTable','table','tableParam','tableCols'],
+  components:{previewImage},
   data(){
     return {
-      drawerVisible:false
+      drawerVisible:false,
+      list:[],
+      total:0,
+      currentPage:0
     }
   },
   computed:{
@@ -64,10 +124,32 @@ export default {
     },
   },
   methods:{
-    detailClick(){},
+    detailClick(){
+      if (this.isTable) {
+        this.tableParam.pageNumber = 1
+        this.tableList()
+      }
+      this.$emit('detailClick')
+    },
     onClose(){
 
-    }
+    },
+    async tableList(){
+      const res = await this.$api.requested(this.tableParam)
+      this.list = res.data;
+      this.total = res.total;
+      this.currentPage = res.pageNumber;
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.productParam.content.pageSize = val;
+      this.productData();
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.productParam.content.pageNumber = val;
+      this.productData();
+    },
   }
 }
 </script>