From 50fb58286ed3b718c39a97e0987ee7561a295651 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 04 七月 2025 17:56:41 +0800
Subject: [PATCH] git ch

---
 company/src/components/business/OperaSolutionsDescWindow.vue |  371 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 209 insertions(+), 162 deletions(-)

diff --git a/company/src/components/business/OperaSolutionsDescWindow.vue b/company/src/components/business/OperaSolutionsDescWindow.vue
index b6d2413..06b049f 100644
--- a/company/src/components/business/OperaSolutionsDescWindow.vue
+++ b/company/src/components/business/OperaSolutionsDescWindow.vue
@@ -1,9 +1,8 @@
 <template>
     <GlobalWindow
         :title="title"
-        width="50%"
-        text="淇敼"
-        :withFooter="userInfo.type !== 1"
+        width="100%"
+        :withFooter="false"
         :visible.sync="visible"
         :confirm-working="isWorking"
         @confirm="$refs.operaSolutionsWindow.open('缂栬緫鏂规', form)"
@@ -11,62 +10,69 @@
         <div class="info">
             <div class="info_list">
                 <div class="info_list_item">
-                    <div class="info_list_item_label">鏂规鍚嶇О锛�</div>
+                    <div class="info_list_item_label">{{userInfo.type!=1?'瀛愭柟妗堬細':'鏂规锛�'}}</div>
                     <div class="info_list_item_val">{{form.name}}</div>
                 </div>
-                <div class="info_list_item">
-                    <div class="info_list_item_label">淇濋櫓鍏徃锛�</div>
-                    <div class="info_list_item_val">{{form.insuranceName}}</div>
+                <div class="info_list_item" v-if="userInfo.type !== 1">
+                    <div class="info_list_item_label">涓绘柟妗堬細</div>
+                    <div class="info_list_item_val"><a @click="$refs.operaSolutionsBaseDescWindow.open('涓绘柟妗堣鎯�', { id: form.parentId })" style="cursor: pointer;color: #2E68EC;">{{form.solutionBaseName}}</a></div>
                 </div>
                 <div class="info_list_item">
-                    <div class="info_list_item_label">鎵夸繚鍏徃锛�</div>
-                    <div class="info_list_item_val">{{form.companyName}}</div>
-                </div>
-              <div class="info_list_item">
-                <div class="info_list_item_label">鎶曚繚绫诲瀷锛�</div>
-                <div class="info_list_item_val" v-if="form.type === 0 "> 鐩翠繚</div>
-                <div class="info_list_item_val" v-if="form.type === 1">濮旀墭鎶曚繚</div>
-              </div>
-              <div class="info_list_item" v-if="form.type === 1">
-                <div class="info_list_item_label">濮旀墭鍟嗘埛锛�</div>
-                <div class="info_list_item_val" > {{form.shopName}}</div>
-              </div>
-                <div class="info_list_item">
-                    <div class="info_list_item_label">鎶曚繚骞撮緞锛�</div>
-                    <div class="info_list_item_val">{{form.minAge}}鑷硔{form.maxAge}}</div>
-                </div>
-                <div class="info_list_item">
-                    <div class="info_list_item_label">淇濋櫓璐圭敤锛�</div>
+                    <div class="info_list_item_label">鏂规璐圭敤锛�</div>
                     <div class="info_list_item_val">
-                        {{form.price}}鍏�/浜�/
-                        <span v-if="form.timeUnit === 0">澶�</span>
-                        <span v-if="form.timeUnit === 1">鍗婃湀</span>
-                        <span v-if="form.timeUnit === 2">鏈�</span>
-                        <span v-if="form.timeUnit === 3">骞�</span>
+                        {{form.price}}鍏�/浜�/<template v-if="form.timeUnit === 0">澶�</template><template v-if="form.timeUnit === 2">鏈�</template><template v-if="form.timeUnit === 3">瀛e害</template><template v-if="form.timeUnit === 4">鍗婂勾</template><template v-if="form.timeUnit === 5">骞�</template>
                     </div>
                 </div>
                 <div class="info_list_item">
-                    <div class="info_list_item_label">鎶曚繚鍛ㄦ湡锛�</div>
+                    <div class="info_list_item_label">鎵规敼璁¤垂瑙勫垯锛�</div>
                     <div class="info_list_item_val">
-                        {{form.insureCycle}}
                         <span v-if="form.insureCycleUnit === 0">澶�</span>
                         <span v-if="form.insureCycleUnit === 1">鍗婃湀</span>
                         <span v-if="form.insureCycleUnit === 2">鏈�</span>
-                        <span v-if="form.insureCycleUnit === 3">骞�</span>
+                        <span v-if="form.insureCycleUnit === 3">瀛e害</span>
+                        <span v-if="form.insureCycleUnit === 4">鍗婂勾</span>
+                        <span v-if="form.insureCycleUnit === 5">骞�</span>
                     </div>
                 </div>
                 <div class="info_list_item">
-                    <div class="info_list_item_label">鐢熸晥鏃堕棿锛�</div>
-                    <div class="info_list_item_val">{{form.validType === 0 ? form.validTypeNum + '鏃ュ悗鐢熸晥' : '娆℃湀鐢熸晥'}}</div>
+                    <div class="info_list_item_label">鎶曚繚绫诲瀷锛�</div>
+                    <div class="info_list_item_val" v-if="form.type === 0 ">鐩翠繚</div>
+                    <div class="info_list_item_val" v-if="form.type === 1">濮旀墭鎶曚繚</div>
                 </div>
-
+                <div class="info_list_item">
+                    <div class="info_list_item_label">濮旀墭鍟嗘埛锛�</div>
+                    <div class="info_list_item_val" > {{form.shopName}}</div>
+                </div>
+                <div class="info_list_item">
+                    <div class="info_list_item_label">娲鹃仯鍗曚綅锛�</div>
+                    <div class="info_list_item_val" v-if="form.hasDispatchUnit === 1">鏃�</div>
+                    <div class="info_list_item_val" v-else-if="form.hasDispatchUnit === 0">鏈�</div>
+                </div>
                 <div class="info_list_item">
                     <div class="info_list_item_label">鎺ユ敹鏂囦欢閭锛�</div>
                     <div class="info_list_item_val">{{form.email}}</div>
                 </div>
+              <div class="info_list_item">
+                <div class="info_list_item_label">鎵规敼鏀寔锛�</div>
+                <div class="info_list_item_val">
+                  <span style="margin-right: 50px">鍔犱繚 <i  :class="form.canAdd ==1?'el-icon-circle-check':'el-icon-circle-close'" :style="form.canAdd ==1?'color:green;font-weight:bold':'color:red;font-weight:bold'"></i></span>
+                  <span  style="margin-right: 50px">鍑忎繚  <i   :class="form.canReduce ==1?'el-icon-circle-check':'el-icon-circle-close'" :style="form.canReduce ==1?'color:green;font-weight:bold':'color:red;font-weight:bold'"></i></span>
+                  <span>鏇存崲娲鹃仯鍗曚綅 <i   :class="form.canChangeUnit ==1?'el-icon-circle-check':'el-icon-circle-close'" :style="form.canChangeUnit ==1?'color:green;font-weight:bold':'color:red;font-weight:bold'"></i></span>
+                </div>
+              </div>
+              <div class="info_list_item">
+                <div class="info_list_item_label">鎵瑰噺浠呮敮鎸佹浛鎹細</div>
+                <div class="info_list_item_val">{{form.delOnlyReplace ==1?'鏄�':'鍚�'}}</div>
+              </div>
+                <div class="info_list_item" style="width: 100%">
+                    <div class="info_list_item_label">鏂规纭涔︼細</div>
+                    <div class="info_list_item_val" ><a v-if="form.fanganFile && form.fanganFile.fileurlFull" style="cursor: pointer;color: #2E68EC" title="鐐瑰嚮鏌ョ湅" @click="openFile(form.fanganFile.fileurlFull)">{{ form.fanganFile.name || '鐐瑰嚮鏌ョ湅' }}</a></div>
+                </div>
             </div>
+            <div style="font-size: 18px; font-weight: bold; margin-bottom: 10px;" v-if="userInfo.type === 0">鏂规浣跨敤鎯呭喌</div>
             <el-table
-                :data="form.worktypeList"
+                v-if="userInfo.type === 0"
+                :data="list"
                 border
                 style="width: 100%; margin-bottom: 20px;">
                 <el-table-column
@@ -78,147 +84,188 @@
                     </template>
                 </el-table-column>
                 <el-table-column
-                    prop="worktypeName"
+                    prop="companyName"
                     align="center"
-                    label="宸ョ鍚嶇О">
+                    label="浼佷笟鍚嶇О">
+                </el-table-column>
+                <el-table-column
+                    align="center"
+                    label="绛剧珷鎯呭喌">
+                    <template slot-scope="{row}">
+                        <span v-if="row.signStatus === 0">寰呯绔�</span>
+                        <span v-if="row.signStatus === 1">宸茬绔�</span>
+                    </template>
                 </el-table-column>
             </el-table>
-            <div class="info_agree">
-                <div class="info_agree_label">鐗瑰埆绾﹀畾锛歿{form.specialAgreement}}</div>
-                <div class="info_agree_label">鐗瑰埆璇存槑锛歿{form.specialInfo}}</div>
-                <div class="info_agree_label">鍏朵粬璇存槑锛歿{form.ortherInfo}}</div>
-            </div>
+<!--            <el-table-->
+<!--                :data="form.worktypeList"-->
+<!--                border-->
+<!--                style="width: 100%; margin-bottom: 20px;">-->
+<!--                <el-table-column-->
+<!--                    label="搴忓彿"-->
+<!--                    align="center"-->
+<!--                    width="80">-->
+<!--                    <template slot-scope="scope">-->
+<!--                        <span>{{scope.$index + 1}}</span>-->
+<!--                    </template>-->
+<!--                </el-table-column>-->
+<!--                <el-table-column-->
+<!--                    prop="worktypeName"-->
+<!--                    align="center"-->
+<!--                    label="宸ョ鍚嶇О">-->
+<!--                </el-table-column>-->
+<!--            </el-table>-->
         </div>
         <!-- 淇敼 -->
         <OperaSolutionsWindow ref="operaSolutionsWindow" @success="callback"/>
+        <OperaPdfViewerWindow ref="OperaPdfViewerWindow"  />
+        <OperaSolutionsBaseDescWindow ref="operaSolutionsBaseDescWindow" />
     </GlobalWindow>
 </template>
 
 <script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    import OperaSolutionsWindow from '@/components/business/OperaSolutionsWindow'
-    import { solutionsId } from '@/api/business/solutions'
-    import {mapState} from "vuex";
-    export default {
-        name: 'OperaSolutionsDescWindow',
-        extends: BaseOpera,
-        components: { GlobalWindow, OperaSolutionsWindow },
-        data () {
-            return {
-                // 琛ㄥ崟鏁版嵁
-                form: {
-                    id: null,
-                    name: '',
-                    companyName: '',
-                    insuranceId: '',
-                    validType: 0,
-                    type: 0,
-                    minAge: '',
-                    maxAge: '',
-                    price: '',
-                    timeUnit: '',
-                    insureCycle: '',
-                    shopName:'',
-                    insureCycleUnit: '',
-                    validTypeNum: '',
-                    email: '',
-                    specialAgreement: '',
-                    specialInfo: '',
-                    ortherInfo: '',
-                    insuranceName: '',
-                    signKeyword: '',
-                    worktypeList: [],
-                    worktypeIdList: []
-                }
-            }
-        },
-        computed: {
-            ...mapState(['userInfo'])
-        },
-        created () {
-            this.config({
-                api: '/business/solutions',
-                'field.id': 'id'
-            })
-        },
-        methods: {
-            open (title, target) {
-                this.title = title
-                this.visible = true
-              this.form = {
-                    id: null,
-                    name: '',
-                    companyName: '',
-                    insuranceId: '',
-                    validType: 0,
-                    type: 0,
-                    minAge: '',
-                    maxAge: '',
-                    price: '',
-                    timeUnit: '',
-                    insureCycle: '',
-                    shopName:'',
-                    insureCycleUnit: '',
-                    validTypeNum: '',
-                    email: '',
-                    specialAgreement: '',
-                    specialInfo: '',
-                    ortherInfo: '',
-                    insuranceName: '',
-                    signKeyword: '',
-                    worktypeList: [],
-                    worktypeIdList: []
-              }
-                this.$nextTick(() => {
-                    for (const key in this.form) {
-                        this.form[key] = target[key]
-                    }
-                    this.getDetails()
-                })
-            },
-            getDetails() {
-                solutionsId(this.form.id)
-                    .then(res => {
-                        for (const key in this.form) {
-                            this.form[key] = res[key]
-                        }
-                        this.form.worktypeIdList = res.worktypeList.map(item => {
-                            return {
-                                worktypeId: item.worktypeId
-                            }
-                        })
-                    })
-            },
-            callback() {
-                this.$emit('success')
-                this.visible = false
-            }
-        }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import OperaSolutionsWindow from '@/components/business/OperaSolutionsWindow'
+import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
+import OperaSolutionsBaseDescWindow from '@/components/business/OperaSolutionsBaseDescWindow'
+import { solutionsId, listForCompany } from '@/api/business/solutions'
+import { mapState } from 'vuex'
+export default {
+  name: 'OperaSolutionsDescWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow, OperaPdfViewerWindow,OperaSolutionsWindow, OperaSolutionsBaseDescWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        name: '',
+        companyName: '',
+        insuranceId: '',
+        validType: 0,
+        type: 0,
+        minAge: '',
+        maxAge: '',
+        price: '',
+        timeUnit: '',
+        insureCycle: '',
+        parentId: '',
+        shopName: '',
+        insureCycleUnit: '',
+        hasDispatchUnit: '',
+        solutionBaseName: '',
+        validTypeNum: '',
+        email: '',
+        canReduce: 0,
+        canChangeUnit: 0,
+        addValidDays: 0,
+        delValidDays: 0,
+        delOnlyReplace: 0,
+        canAdd: 0,
+        specialAgreement: '',
+        specialInfo: '',
+        ortherInfo: '',
+        insuranceName: '',
+        signKeyword: '',
+        worktypeList: [],
+        worktypeIdList: []
+      },
+      list: []
     }
+  },
+  computed: {
+    ...mapState(['userInfo'])
+  },
+  created () {
+    this.config({
+      api: '/business/solutions',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    open (title, target) {
+      this.title = title
+      this.visible = true
+      this.form = {
+        id: null,
+        name: '',
+        companyName: '',
+        insuranceId: '',
+        validType: 0,
+        type: 0,
+        minAge: '',
+        maxAge: '',
+        parentId: '',
+        price: '',
+        timeUnit: '',
+        insureCycle: '',
+        hasDispatchUnit: '',
+        shopName: '',
+        insureCycleUnit: '',
+        validTypeNum: '',
+        email: '',
+        specialAgreement: '',
+        solutionBaseName: '',
+        specialInfo: '',
+        ortherInfo: '',
+        fanganFile: null,
+        canReduce: 0,
+        canChangeUnit: 0,
+        addValidDays: 0,
+        delValidDays: 0,
+        delOnlyReplace: 0,
+        canAdd: 0,
+        insuranceName: '',
+        signKeyword: '',
+        worktypeList: [],
+        worktypeIdList: []
+      }
+
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+        this.getDetails()
+        this.getList()
+      })
+    },
+    getList() {
+      listForCompany({ solutionId: this.form.id })
+        .then(res => {
+          this.list = res
+        })
+    },
+    openFile (url) {
+      setTimeout(() => {
+        this.$refs.OperaPdfViewerWindow.open('鏂规纭涔�',url)
+        // window.open(url)
+      }, 500)
+    },
+    getDetails () {
+      solutionsId(this.form.id)
+        .then(res => {
+          for (const key in this.form) {
+            this.form[key] = res[key]
+          }
+          this.form.worktypeIdList = res.worktypeList.map(item => {
+            return {
+              worktypeId: item.worktypeId
+            }
+          })
+        })
+    },
+    callback () {
+      this.$emit('success')
+      this.visible = false
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
     .info {
         width: 100%;
-        .info_agree {
-            width: 100%;
-            display: flex;
-            flex-direction: column;
-            margin-top: 20px;
-            .info_agree_label {
-                font-size: 14px;
-                font-weight: 500;
-                color: #000000;
-                margin-top: 5px;
-            }
-            .info_agree_val {
-                font-size: 14px;
-                font-weight: 500;
-                color: #000000;
-                margin-top: 5px;
-            }
-        }
         .info_label {
             width: 100%;
             display: flex;

--
Gitblit v1.9.3