| @@ -0,0 +1,16 @@ | |||
| /** | |||
| * api接口统一管理 | |||
| */ | |||
| import {get, post } from "../utils/http"; | |||
| // 获取园区信息 | |||
| export const getRegisterArea = p => get("/registerArea/getRegisterArea", p); | |||
| // 提交入驻申请单 | |||
| export const submitRequestNote = p => post("/settledRequestNote/save", p); | |||
| // 园区服务产品列表 | |||
| export const getParkServiceProduct = p => get("/parkServiceProduct/page", p); | |||
| // 物业管理产品列表 | |||
| export const getPropertyManage = p => get("/propertyManagement/page", p); | |||
| @@ -1,28 +1,31 @@ | |||
| import router from "../router/index"; | |||
| import { Message } from "element-ui"; | |||
| // export const commonJs = { | |||
| // // 在新的页面打开路由 | |||
| // routerOpenInNewWindow: routerPath => { | |||
| // let routeData = router.resolve(routerPath); | |||
| // window.open(routeData.href, "_blank"); | |||
| // }, | |||
| // }; | |||
| // 在新的页面打开路由 | |||
| export const routerOpenInNewWindow = routerPath => { | |||
| let routeData = router.resolve(routerPath); | |||
| window.open(routeData.href, "_blank"); | |||
| } | |||
| }; | |||
| /** | |||
| * | |||
| * @param {*} status 1成功 0错误 可迭代 | |||
| * | |||
| * @param {*} path 图片路径 | |||
| * @returns | |||
| */ | |||
| export const formatImg = path => { | |||
| // return path ? `${process.env.VUE_APP_PARK_DOMAIN}/common/getImg?path=${path}` : ""; | |||
| return path ? `http://192.168.18.236:18888/common/getImg?path=${path}` : ""; | |||
| }; | |||
| /** | |||
| * | |||
| * @param {*} status 1成功 0错误 可迭代 | |||
| * @param {*} msg 提示信息 | |||
| */ | |||
| export const sendMsg = (status, msg) => { | |||
| if (status == 1) { | |||
| Message.success(msg) | |||
| Message.success(msg); | |||
| } else { | |||
| Message.error(msg) | |||
| Message.error(msg); | |||
| } | |||
| } | |||
| }; | |||
| @@ -0,0 +1,196 @@ | |||
| <!-- 入驻园区弹框 --> | |||
| <template> | |||
| <div class=""> | |||
| <el-dialog | |||
| class="dialog_box" | |||
| :visible.sync="dialogTableVisible" | |||
| :show-close="false" | |||
| :close-on-click-modal="false" | |||
| :close-on-press-escape="false" | |||
| :lock-scroll="false" | |||
| width="740px" | |||
| > | |||
| <div slot="title" class="header_title"> | |||
| <span class="title_text">入驻园区</span> | |||
| <img | |||
| class="pointer" | |||
| src="@assets/image/company/icon_close.png" | |||
| alt="关闭" | |||
| @click="dialogTableVisible = false" | |||
| /> | |||
| </div> | |||
| <div class="dialog_content"> | |||
| <el-form label-position="right" label-width="95px"> | |||
| <el-form-item label="*企业名称"> | |||
| <el-input v-model.trim="formObj.companyName" maxlength="200"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="*联系方式"> | |||
| <el-input | |||
| v-model.trim="formObj.contactWay" | |||
| maxlength="11" | |||
| @change="confirmTelephone" | |||
| ></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="*主营业务"> | |||
| <el-input v-model.trim="formObj.mainBusiness" maxlength="200"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="预计产税"> | |||
| <el-input | |||
| v-model.trim="formObj.estimatedProduceTax" | |||
| maxlength="200" | |||
| ></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="其他说明"> | |||
| <el-input | |||
| type="textarea" | |||
| :rows="5" | |||
| resize="none" | |||
| v-model.trim="formObj.otherExplain" | |||
| maxlength="200" | |||
| ></el-input> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button | |||
| class="submit_btn" | |||
| type="primary" | |||
| :loading="loading" | |||
| @click="submitForm" | |||
| > | |||
| 提交 | |||
| </el-button> | |||
| <div class="submit_tip">提交后园区工作人员将在1-3个工作日内联系您</div> | |||
| </el-form-item> | |||
| </el-form> | |||
| </div> | |||
| </el-dialog> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) | |||
| //例如:import 《组件名称》 from '《组件路径》'; | |||
| import { submitRequestNote } from "@api/index"; | |||
| import Qs from "qs"; | |||
| export default { | |||
| //import引入的组件需要注入到对象中才能使用 | |||
| components: {}, | |||
| data() { | |||
| //这里存放数据 | |||
| return { | |||
| dialogTableVisible: false, | |||
| formObj: { | |||
| companyName: "", // 企业名称 | |||
| contactWay: "", // 联系方式 | |||
| mainBusiness: "", // 主营业务 | |||
| estimatedProduceTax: "", // 预计产税 | |||
| otherExplain: "", // 其他说明 | |||
| }, | |||
| loading: false, | |||
| }; | |||
| }, | |||
| //监听属性 类似于data概念 | |||
| computed: {}, | |||
| //监控data中的数据变化 | |||
| watch: {}, | |||
| //方法集合 | |||
| methods: { | |||
| showDialog() { | |||
| this.dialogTableVisible = true; | |||
| this.formObj = { | |||
| companyName: "", // 企业名称 | |||
| contactWay: "", // 联系方式 | |||
| mainBusiness: "", // 主营业务 | |||
| estimatedProduceTax: "", // 预计产税 | |||
| otherExplain: "", // 其他说明 | |||
| }; | |||
| }, | |||
| confirmTelephone() { | |||
| if (!/^[0-9]{11}$/.test(this.formObj.contactWay)) this.formObj.contactWay = ""; | |||
| }, | |||
| submitForm() { | |||
| if (!this.formObj.companyName) { | |||
| this.$message.error(`请填写企业名称!`); | |||
| return; | |||
| } | |||
| if (!this.formObj.contactWay) { | |||
| this.$message.error(`请填写联系方式!`); | |||
| return; | |||
| } | |||
| if (!this.formObj.mainBusiness) { | |||
| this.$message.error(`请填写主营业务!`); | |||
| return; | |||
| } | |||
| submitRequestNote(Qs.stringify(this.formObj)) | |||
| .then(res => { | |||
| if (res.data.status == 0) { | |||
| this.$message.success(`提交成功!`); | |||
| this.dialogTableVisible = false; | |||
| } else { | |||
| this.$message.error(`提交失败,请刷新重试!`); | |||
| } | |||
| }) | |||
| .catch(err => { | |||
| this.$message.error(`提交失败,失败原因${err},请刷新重试!`); | |||
| }); | |||
| }, | |||
| }, | |||
| //生命周期 - 创建完成(可以访问当前this实例) | |||
| created() {}, | |||
| //生命周期 - 挂载完成(可以访问DOM元素) | |||
| mounted() {}, | |||
| beforeCreate() {}, //生命周期 - 创建之前 | |||
| beforeMount() {}, //生命周期 - 挂载之前 | |||
| beforeUpdate() {}, //生命周期 - 更新之前 | |||
| updated() {}, //生命周期 - 更新之后 | |||
| beforeDestroy() {}, //生命周期 - 销毁之前 | |||
| destroyed() {}, //生命周期 - 销毁完成 | |||
| activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发 | |||
| }; | |||
| </script> | |||
| <style lang="scss" scoped> | |||
| //@import url(); 引入公共css类 | |||
| .dialog_box { | |||
| ::v-deep .el-dialog { | |||
| background-image: linear-gradient(180deg, #cce7fa 0%, #feffff 100%); | |||
| } | |||
| ::v-deep .el-dialog__header { | |||
| padding: 0; | |||
| } | |||
| .header_title { | |||
| @include size(100%, 72px); | |||
| padding: 0 20px 0 30px; | |||
| @include border-box; | |||
| @include flex(row, space-between, center, null); | |||
| border-bottom: solid 1px #637485; | |||
| .title_text { | |||
| @include font(24px, #334a5f); | |||
| font-weight: 600; | |||
| } | |||
| img { | |||
| @include size(36px, 36px); | |||
| } | |||
| } | |||
| .dialog_content { | |||
| padding: 0 85px; | |||
| @include border-box; | |||
| ::v-deep .el-form-item__label { | |||
| @include font(16px, #637485); | |||
| } | |||
| ::v-deep .el-input__inner, | |||
| ::v-deep .el-textarea__inner { | |||
| background: transparent; | |||
| border: 1px solid #41a6fe; | |||
| } | |||
| .submit_btn { | |||
| width: 100%; | |||
| background-image: linear-gradient(135deg, #42a6fe 0%, #0070d2 100%); | |||
| } | |||
| .submit_tip { | |||
| @include font(16px, #334a5f); | |||
| width: 100%; | |||
| text-align: center; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @@ -2,7 +2,7 @@ | |||
| <div class="home"> | |||
| <Banner></Banner> | |||
| <div> | |||
| <park-introduce :navLists="indexTab"></park-introduce> | |||
| <park-introduce :navLists="indexTab" :parkInfo="parkInfo"></park-introduce> | |||
| <product></product> | |||
| <service></service> | |||
| <advantage></advantage> | |||
| @@ -22,6 +22,7 @@ import Advantage from "./Advantage.vue"; | |||
| import ParkMap from "./ParkMap.vue"; | |||
| import Footer from "@components/Footer.vue"; | |||
| import SlideNav from "./SlideNav.vue"; | |||
| import { getRegisterArea } from "@api/index"; | |||
| export default { | |||
| metaInfo: { | |||
| @@ -66,11 +67,30 @@ export default { | |||
| imgUrl: require("@assets/image/index/icon_map.png"), | |||
| }, | |||
| ], | |||
| parkInfo: null, | |||
| }; | |||
| }, | |||
| computed: {}, | |||
| created() { | |||
| this.getRegisterArea(); | |||
| }, | |||
| mounted() {}, | |||
| methods: {}, | |||
| methods: { | |||
| getRegisterArea() { | |||
| getRegisterArea() | |||
| .then(res => { | |||
| console.log(res.data); | |||
| if (res.data.status == 0) { | |||
| this.parkInfo = res.data.data[0]; | |||
| } else { | |||
| this.$message.error(`获取数据失败,请刷新重试!`); | |||
| } | |||
| }) | |||
| .catch(err => { | |||
| this.$message.error(`获取数据失败,失败原因${err},请刷新重试!`); | |||
| }); | |||
| }, | |||
| }, | |||
| }; | |||
| </script> | |||
| @@ -4,13 +4,18 @@ | |||
| <div class="title">招商服务</div> | |||
| <section class="service_box"> | |||
| <div class="left"> | |||
| <div class="tab_box pointer" v-for="item in serviceTabs" :key="item.name"> | |||
| <div | |||
| v-for="(item, index) in serviceTabs" | |||
| :class="['tab_box', 'pointer', activeTab === index ? 'active' : '']" | |||
| :key="item.name" | |||
| @click="changeTab(index)" | |||
| > | |||
| <div class="tab_title">{{ item.name }}</div> | |||
| <ul class="tab_ul"> | |||
| <li v-for="item1 in item.children" :key="item1">{{ item1 }}</li> | |||
| </ul> | |||
| </div> | |||
| <div class="enter pointer" @click="dialogTableVisible = true"> | |||
| <div class="enter pointer" @click="showDialog"> | |||
| <div class="left"> | |||
| <span class="enter_title">我是企业</span> | |||
| <span class="enter_btn"> | |||
| @@ -21,22 +26,55 @@ | |||
| <img src="@assets/image/index/icon_company_big.png" alt="企业" /> | |||
| </div> | |||
| </div> | |||
| <div :class="['right', lists && lists.length > 0 ? '' : 'no_data_padding']"> | |||
| <div | |||
| :class="['right', lists && lists.length > 0 ? '' : 'no_data_padding']" | |||
| v-loading="serviceLoading" | |||
| > | |||
| <ul class="product_ul" v-if="lists && lists.length > 0"> | |||
| <li class="pointer" v-for="item in 3"> | |||
| <img src="" alt="" /> | |||
| <li | |||
| class="pointer" | |||
| v-for="item in lists" | |||
| :key=" | |||
| activeTab === 0 ? item.parkServiceProductId : item.propertyManagementId | |||
| " | |||
| @click=" | |||
| goDetail( | |||
| activeTab === 0 | |||
| ? item.parkServiceProductId | |||
| : item.propertyManagementId | |||
| ) | |||
| " | |||
| > | |||
| <img | |||
| :src=" | |||
| activeTab === 0 | |||
| ? formatImg(item.productMasterImg[0]) | |||
| : formatImg(item.imgList[0]) | |||
| " | |||
| alt="产品图片" | |||
| /> | |||
| <div class="product_info"> | |||
| <span class="product_title"> | |||
| 有限责任公司注册(松江)有限责任公司注册(松江)有限责任公司注册(松江) | |||
| {{ activeTab === 0 ? item.productName : item.name }} | |||
| </span> | |||
| <span class="product_content"> | |||
| 近年来,国家大力推行数字化建设,数字化园区是数字化建设的重要部分,也由此进入了高速发展阶段。数字化园区是传统技术与新技术结合打造的新型场景,将在园区招商、日常办公、生产制造、疫情防控等方面为… | |||
| {{ activeTab === 0 ? item.productDetail : item.introduce }} | |||
| </span> | |||
| <span class="product_price"> | |||
| <span> | |||
| 价格: | |||
| <span class="price">¥80.00</span> | |||
| 元 | |||
| <span class="price"> | |||
| ¥ | |||
| {{ | |||
| activeTab === 0 | |||
| ? item.showPrice | |||
| : item.housingInformationList && | |||
| item.housingInformationList.length > 0 | |||
| ? item.housingInformationList[0].price | |||
| : "0" | |||
| }} | |||
| </span> | |||
| </span> | |||
| <span class="more"><i class="el-icon-right"></i></span> | |||
| </span> | |||
| @@ -57,60 +95,20 @@ | |||
| </div> | |||
| </div> | |||
| </section> | |||
| <el-dialog | |||
| class="dialog_box" | |||
| :visible.sync="dialogTableVisible" | |||
| :show-close="false" | |||
| :close-on-click-modal="false" | |||
| :close-on-press-escape="false" | |||
| :lock-scroll="false" | |||
| width="740px" | |||
| > | |||
| <div slot="title" class="header_title"> | |||
| <span class="title_text">入驻园区</span> | |||
| <img class="pointer" src="" alt="关闭" @click="dialogTableVisible = false" /> | |||
| </div> | |||
| <div class="dialog_content"> | |||
| <el-form label-position="right" label-width="95px"> | |||
| <el-form-item label="*企业名称"> | |||
| <el-input v-model="input"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="*联系方式"> | |||
| <el-input v-model="input"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="*主营业务"> | |||
| <el-input v-model="input"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="预计产税"> | |||
| <el-input v-model="input"></el-input> | |||
| </el-form-item> | |||
| <el-form-item label="其他说明"> | |||
| <el-input | |||
| type="textarea" | |||
| :rows="5" | |||
| resize="none" | |||
| v-model="input" | |||
| ></el-input> | |||
| </el-form-item> | |||
| <el-form-item> | |||
| <el-button class="submit_btn" type="primary" :loading="loading"> | |||
| 提交 | |||
| </el-button> | |||
| <div class="submit_tip">提交后园区工作人员将在1-3个工作日内联系您</div> | |||
| </el-form-item> | |||
| </el-form> | |||
| </div> | |||
| </el-dialog> | |||
| <apply-for-admission ref="applyForAdmission"></apply-for-admission> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) | |||
| //例如:import 《组件名称》 from '《组件路径》'; | |||
| import { getParkServiceProduct, getPropertyManage } from "@api/index"; | |||
| import { formatImg, routerOpenInNewWindow } from "@/utils/common.js"; | |||
| import ApplyForAdmission from "./ApplyForAdmission.vue"; | |||
| export default { | |||
| //import引入的组件需要注入到对象中才能使用 | |||
| components: {}, | |||
| components: { ApplyForAdmission }, | |||
| data() { | |||
| //这里存放数据 | |||
| return { | |||
| @@ -124,10 +122,15 @@ export default { | |||
| children: ["集成电路", "人工智能", "生物医药", "电子信息"], | |||
| }, | |||
| ], | |||
| activeTab: 0, | |||
| queryParams: { | |||
| page: 1, | |||
| pageSize: 3, | |||
| }, | |||
| lists: [], | |||
| dialogTableVisible: false, | |||
| input: "", | |||
| loading: false, | |||
| tempList1: [], | |||
| tempList2: [], | |||
| serviceLoading: false, | |||
| }; | |||
| }, | |||
| //监听属性 类似于data概念 | |||
| @@ -135,9 +138,83 @@ export default { | |||
| //监控data中的数据变化 | |||
| watch: {}, | |||
| //方法集合 | |||
| methods: {}, | |||
| methods: { | |||
| formatImg, | |||
| changeTab(index) { | |||
| this.activeTab = index; | |||
| this.lists = []; | |||
| this.getData(); | |||
| }, | |||
| getData() { | |||
| if (this.activeTab === 0) { | |||
| this.lists = this.tempList1; | |||
| // this.getParkServiceProduct(); | |||
| } else { | |||
| this.lists = this.tempList2; | |||
| // this.getPropertyManage(); | |||
| } | |||
| }, | |||
| getParkServiceProduct() { | |||
| this.serviceLoading = true; | |||
| getParkServiceProduct(this.queryParams) | |||
| .then(res => { | |||
| console.log(res.data); | |||
| if (res.data.status == 0) { | |||
| this.tempList1 = res.data.data.list; | |||
| this.lists = this.tempList1; | |||
| } else { | |||
| this.$message.error(`获取数据失败,请刷新重试!`); | |||
| } | |||
| this.serviceLoading = false; | |||
| }) | |||
| .catch(err => { | |||
| this.$message.error(`获取数据失败,失败原因${err},请刷新重试!`); | |||
| this.serviceLoading = false; | |||
| }); | |||
| }, | |||
| getPropertyManage() { | |||
| this.serviceLoading = true; | |||
| getPropertyManage(this.queryParams) | |||
| .then(res => { | |||
| console.log(res.data); | |||
| if (res.data.status == 0) { | |||
| this.tempList2 = res.data.data.list; | |||
| } else { | |||
| this.$message.error(`获取数据失败,请刷新重试!`); | |||
| } | |||
| this.serviceLoading = false; | |||
| }) | |||
| .catch(err => { | |||
| this.$message.error(`获取数据失败,失败原因${err},请刷新重试!`); | |||
| this.serviceLoading = false; | |||
| }); | |||
| }, | |||
| goDetail(id) { | |||
| if (this.activeTab === 0) { | |||
| routerOpenInNewWindow({ | |||
| path: "/product-detail", | |||
| query: { | |||
| parkServiceProductId: id, | |||
| }, | |||
| }); | |||
| } else { | |||
| routerOpenInNewWindow({ | |||
| path: "/property-detail", | |||
| query: { | |||
| propertyManagementId: id, | |||
| }, | |||
| }); | |||
| } | |||
| }, | |||
| showDialog() { | |||
| this.$refs.applyForAdmission.showDialog(); | |||
| }, | |||
| }, | |||
| //生命周期 - 创建完成(可以访问当前this实例) | |||
| created() {}, | |||
| created() { | |||
| this.getParkServiceProduct(); | |||
| this.getPropertyManage(); | |||
| }, | |||
| //生命周期 - 挂载完成(可以访问DOM元素) | |||
| mounted() {}, | |||
| }; | |||
| @@ -175,29 +252,28 @@ export default { | |||
| margin-right: 25px; | |||
| } | |||
| } | |||
| &:nth-child(1) { | |||
| background-image: linear-gradient(90deg, #0689e7 0%, #eff8fe 100%); | |||
| .tab_title { | |||
| @include font(24px, $color-white); | |||
| border-bottom: 1px solid #d2e8f6; | |||
| padding-bottom: 20px; | |||
| @include border-box; | |||
| } | |||
| .tab_ul { | |||
| @include font(16px, $color-white); | |||
| } | |||
| background-image: linear-gradient(90deg, #e5f3fd 0%, #fbfeff 100%); | |||
| .tab_title { | |||
| @include font(24px, #334a5f); | |||
| border-bottom: 1px solid #d2e8f6; | |||
| padding-bottom: 20px; | |||
| @include border-box; | |||
| } | |||
| &:nth-child(2) { | |||
| background-image: linear-gradient(90deg, #e5f3fd 0%, #fbfeff 100%); | |||
| .tab_title { | |||
| @include font(24px, #334a5f); | |||
| border-bottom: 1px solid #d2e8f6; | |||
| padding-bottom: 20px; | |||
| @include border-box; | |||
| } | |||
| .tab_ul { | |||
| @include font(16px, #637485); | |||
| } | |||
| .tab_ul { | |||
| @include font(16px, #637485); | |||
| } | |||
| } | |||
| .active { | |||
| background-image: linear-gradient(90deg, #0689e7 0%, #eff8fe 100%); | |||
| .tab_title { | |||
| @include font(24px, $color-white); | |||
| border-bottom: 1px solid #d2e8f6; | |||
| padding-bottom: 20px; | |||
| @include border-box; | |||
| } | |||
| .tab_ul { | |||
| @include font(16px, $color-white); | |||
| } | |||
| } | |||
| .enter { | |||
| @@ -248,7 +324,7 @@ export default { | |||
| height: 100%; | |||
| @include border-box; | |||
| flex: 1; | |||
| @include flex(column, space-between, flex-start, null); | |||
| @include flex(column, flex-start, flex-start, null); | |||
| } | |||
| .product_title { | |||
| width: 100%; | |||
| @@ -258,6 +334,7 @@ export default { | |||
| } | |||
| .product_content { | |||
| width: 100%; | |||
| margin: 15px 0; | |||
| @include font(16px, #637485); | |||
| @include text-ellipsis-multiple(3); | |||
| } | |||
| @@ -309,47 +386,4 @@ export default { | |||
| background: #e6f3fd; | |||
| } | |||
| } | |||
| .dialog_box { | |||
| ::v-deep .el-dialog { | |||
| background-image: linear-gradient(180deg, #cce7fa 0%, #feffff 100%); | |||
| } | |||
| ::v-deep .el-dialog__header { | |||
| padding: 0; | |||
| } | |||
| .header_title { | |||
| @include size(100%, 72px); | |||
| padding: 0 20px 0 30px; | |||
| @include border-box; | |||
| @include flex(row, space-between, center, null); | |||
| border-bottom: solid 1px #637485; | |||
| .title_text { | |||
| @include font(24px, #334a5f); | |||
| font-weight: 600; | |||
| } | |||
| img { | |||
| @include size(36px, 36px); | |||
| } | |||
| } | |||
| .dialog_content { | |||
| padding: 0 85px; | |||
| @include border-box; | |||
| ::v-deep .el-form-item__label { | |||
| @include font(16px, #637485); | |||
| } | |||
| ::v-deep .el-input__inner, | |||
| ::v-deep .el-textarea__inner { | |||
| background: transparent; | |||
| border: 1px solid #41a6fe; | |||
| } | |||
| .submit_btn { | |||
| width: 100%; | |||
| background-image: linear-gradient(135deg, #42a6fe 0%, #0070d2 100%); | |||
| } | |||
| .submit_tip { | |||
| @include font(16px, #334a5f); | |||
| width: 100%; | |||
| text-align: center; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @@ -1,15 +1,17 @@ | |||
| <!-- 园区介绍 --> | |||
| <template> | |||
| <div class="introduce right_slice"> | |||
| <div class="introduce right_slice" v-if="parkInfo"> | |||
| <div class="title"> | |||
| <span class="chinese">园区介绍</span> | |||
| <span class="english">park introduce</span> | |||
| </div> | |||
| <img :class="[lists.length < 5 ? 'park_img_100' : 'park_img_50']" src="" alt="" /> | |||
| <img | |||
| :class="[lists.length < 5 ? 'park_img_100' : 'park_img_50']" | |||
| :src="formatImg(JSON.parse(parkInfo.photo)[0])" | |||
| alt="园区图片" | |||
| /> | |||
| <div class="content"> | |||
| 小昆山园区经过不断改革发展,园区已经具备大规模开发建设的总体框架,形成了良性循环的软硬投资环境,吸引了多地区企业的投资。园区地理交通条件优越,区内交通四通八达,道路宽敞平坦。 | |||
| 小昆山园区经过不断改革发展,园区已经具备大规模开发建设的总体框架,形成了良性循环的软硬投资环境,吸引了多地区企业的投资。园区地理交通条件优越,区内交通四通八达,道路宽敞平坦。 | |||
| 小昆山园区经过不断改革发展,园区已经具备大规模开发建设的总体框架,形成了良性循环的软硬投资环境,吸引了多地区企业的投资。园区地理交通条件优越,区内交通四通八达,道路宽敞平坦。 | |||
| {{ parkInfo.introduce }} | |||
| </div> | |||
| </div> | |||
| </template> | |||
| @@ -17,11 +19,22 @@ | |||
| <script> | |||
| //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) | |||
| //例如:import 《组件名称》 from '《组件路径》'; | |||
| import { formatImg } from "@/utils/common.js"; | |||
| export default { | |||
| //import引入的组件需要注入到对象中才能使用 | |||
| components: {}, | |||
| props: ["lists"], | |||
| props: { | |||
| //每个标题内容 | |||
| lists: { | |||
| type: Array, | |||
| default: () => [], | |||
| }, | |||
| parkInfo: { | |||
| type: Object, | |||
| default: () => {}, | |||
| }, | |||
| }, | |||
| data() { | |||
| //这里存放数据 | |||
| return {}; | |||
| @@ -31,7 +44,9 @@ export default { | |||
| //监控data中的数据变化 | |||
| watch: {}, | |||
| //方法集合 | |||
| methods: {}, | |||
| methods: { | |||
| formatImg, | |||
| }, | |||
| //生命周期 - 创建完成(可以访问当前this实例) | |||
| created() {}, | |||
| //生命周期 - 挂载完成(可以访问DOM元素) | |||
| @@ -64,7 +79,6 @@ export default { | |||
| .park_img_50 { | |||
| width: 100%; | |||
| height: 238px; | |||
| background: #d8d8d8; | |||
| } | |||
| .park_img_100 { | |||
| width: 100%; | |||
| @@ -18,7 +18,7 @@ | |||
| </ul> | |||
| <section class="content row"> | |||
| <div :class="[lists.length < 5 ? 'row_100' : 'row_50']"> | |||
| <introduce :lists="lists"></introduce> | |||
| <introduce :lists="lists" :parkInfo="parkInfo"></introduce> | |||
| <div v-if="lists.length < 5" class="top_padding"> | |||
| <notice :lists="lists"></notice> | |||
| </div> | |||
| @@ -40,7 +40,15 @@ export default { | |||
| //import引入的组件需要注入到对象中才能使用 | |||
| components: { Introduce, Notice }, | |||
| props: { | |||
| navLists: Array, //每个标题内容 | |||
| //每个标题内容 | |||
| navLists: { | |||
| type: Array, | |||
| default: () => [], | |||
| }, | |||
| parkInfo: { | |||
| type: Object, | |||
| default: () => {}, | |||
| }, | |||
| }, | |||
| data() { | |||
| //这里存放数据 | |||
| @@ -21,7 +21,11 @@ | |||
| <div class="detail_box" v-if="companyInfo"> | |||
| <section class="top_box"> | |||
| <div class="company_img_box"> | |||
| <img class="company_img" src="" alt="" /> | |||
| <img | |||
| class="company_img" | |||
| :src="formatImg(JSON.parse(companyInfo.logo)[0])" | |||
| alt="企业图片" | |||
| /> | |||
| <div class="tip_img"> | |||
| <span | |||
| :class="[ | |||
| @@ -164,6 +168,7 @@ import OtherInfo from "./components/OtherInfo.vue"; | |||
| import ClaimDialog from "./components/ClaimDialog.vue"; | |||
| import { getCompanyById, updateCompany } from "@api/company"; | |||
| import { mapGetters } from "vuex"; | |||
| import { formatImg } from "@/utils/common.js"; | |||
| export default { | |||
| //import引入的组件需要注入到对象中才能使用 | |||
| @@ -219,6 +224,8 @@ export default { | |||
| watch: {}, | |||
| //方法集合 | |||
| methods: { | |||
| formatImg, | |||
| // 锚点点击事件 | |||
| changeTab(item, index) { | |||
| this.activeTab = item.value; | |||
| @@ -364,7 +371,6 @@ export default { | |||
| position: relative; | |||
| .company_img { | |||
| background: pink; | |||
| @include size(200px, 100%); | |||
| } | |||
| .tip_img { | |||
| @@ -211,7 +211,12 @@ | |||
| </el-button> | |||
| </div> --> | |||
| <div> | |||
| <el-button class="submit_btn" type="primary" :loading="loading"> | |||
| <el-button | |||
| class="submit_btn" | |||
| type="primary" | |||
| :loading="loading" | |||
| @click="downLoad" | |||
| > | |||
| 下载授权书 | |||
| </el-button> | |||
| </div> | |||
| @@ -338,6 +343,10 @@ export default { | |||
| this.$data[`imageUrl${imgUrlIndex}`] = photo2Url; | |||
| this.$forceUpdate(); | |||
| }, | |||
| downLoad() { | |||
| let url = `http://192.168.18.236:18888/common/downloadFile?path=/website/public/%E6%8E%88%E6%9D%83%E4%B9%A6.doc&fileName=%E6%8E%88%E6%9D%83%E4%B9%A6.doc`; | |||
| window.open(url, "_self"); | |||
| }, | |||
| }, | |||
| //生命周期 - 创建完成(可以访问当前this实例) | |||
| created() {}, | |||
| @@ -1,7 +1,7 @@ | |||
| <!-- 园区企业单个item --> | |||
| <template> | |||
| <div class="item_box" @click="goDetail(companyInfo.companyId)"> | |||
| <img class="company_img" src="" alt="" /> | |||
| <img class="company_img" :src="formatImg(JSON.parse(companyInfo.logo)[0])" alt="企业图片" /> | |||
| <div class="info_box"> | |||
| <div class="title_box"> | |||
| <span class="company_title">{{ companyInfo.companyName }}</span> | |||
| @@ -52,7 +52,7 @@ | |||
| <script> | |||
| //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) | |||
| //例如:import 《组件名称》 from '《组件路径》'; | |||
| import { formatImg } from "@/utils/common.js"; | |||
| export default { | |||
| //import引入的组件需要注入到对象中才能使用 | |||
| props: { | |||
| @@ -76,6 +76,7 @@ export default { | |||
| watch: {}, | |||
| //方法集合 | |||
| methods: { | |||
| formatImg, | |||
| goDetail(companyId) { | |||
| this.$router.push({ | |||
| path: "/company-detail", | |||
| @@ -102,7 +103,6 @@ export default { | |||
| margin-bottom: 30px; | |||
| .company_img { | |||
| @include size(280px, 180px); | |||
| background: pink; | |||
| } | |||
| .info_box { | |||
| flex: 1; | |||
| @@ -28,22 +28,16 @@ | |||
| <tr> | |||
| <td class="table_title">企业风采:</td> | |||
| <td class="content"> | |||
| <template v-if="!isEditing"> | |||
| <div style="display:flex" v-if="!isEditing"> | |||
| <img | |||
| v-for="(item, index) in uploadFileList" | |||
| :key="index" | |||
| class="company_img" | |||
| :src="item" | |||
| :src="formatImg(item)" | |||
| alt="企业风采" | |||
| /> | |||
| </template> | |||
| </div> | |||
| <div v-else class="img_box"> | |||
| <!-- <img | |||
| v-for="(item, index) in uploadFileList" | |||
| :key="index" | |||
| class="company_img" | |||
| :src="item" | |||
| /> --> | |||
| <el-upload | |||
| :limit="5" | |||
| class="avatar-uploader" | |||
| @@ -93,6 +87,7 @@ | |||
| //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) | |||
| //例如:import 《组件名称》 from '《组件路径》'; | |||
| import { uploadFile } from "@mixin/uploadFile"; | |||
| import { formatImg } from "@/utils/common.js"; | |||
| export default { | |||
| props: { | |||
| @@ -123,6 +118,7 @@ export default { | |||
| watch: {}, | |||
| //方法集合 | |||
| methods: { | |||
| formatImg, | |||
| // 删除图片 | |||
| handleBeforeRemove(file, fileList) { | |||
| console.log(fileList); | |||