数字化园区前端项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Service.vue 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. <!-- 招商服务 -->
  2. <template>
  3. <div class="service" id="anchor-service">
  4. <div class="title">招商服务</div>
  5. <section class="service_box">
  6. <div class="left">
  7. <div class="tab_box pointer" v-for="item in serviceTabs" :key="item.name">
  8. <div class="tab_title">{{ item.name }}</div>
  9. <ul class="tab_ul">
  10. <li v-for="item1 in item.children" :key="item1">{{ item1 }}</li>
  11. </ul>
  12. </div>
  13. <div class="enter pointer" @click="dialogTableVisible = true">
  14. <div class="left">
  15. <span class="enter_title">我是企业</span>
  16. <span class="enter_btn">
  17. <span>我要入驻</span>
  18. <i class="el-icon-right"></i>
  19. </span>
  20. </div>
  21. <img src="@assets/image/index/icon_company_big.png" alt="企业" />
  22. </div>
  23. </div>
  24. <div :class="['right', lists && lists.length > 0 ? '' : 'no_data_padding']">
  25. <ul class="product_ul" v-if="lists && lists.length > 0">
  26. <li class="pointer" v-for="item in 3">
  27. <img src="" alt="" />
  28. <div class="product_info">
  29. <span class="product_title">
  30. 有限责任公司注册(松江)有限责任公司注册(松江)有限责任公司注册(松江)
  31. </span>
  32. <span class="product_content">
  33. 近年来,国家大力推行数字化建设,数字化园区是数字化建设的重要部分,也由此进入了高速发展阶段。数字化园区是传统技术与新技术结合打造的新型场景,将在园区招商、日常办公、生产制造、疫情防控等方面为…
  34. </span>
  35. <span class="product_price">
  36. <span>
  37. 价格:
  38. <span class="price">¥80.00</span>
  39. </span>
  40. <span class="more"><i class="el-icon-right"></i></span>
  41. </span>
  42. </div>
  43. </li>
  44. </ul>
  45. <div v-else class="have_no_product product_bg">
  46. <div class="service_text">
  47. <span>高标准厂房出租,环境优美,交通便捷</span>
  48. <span>
  49. 可按企业需求定制,减轻企业负担
  50. </span>
  51. </div>
  52. <div class="pointer service_btn">
  53. <span>获取园区招商具体详情</span>
  54. <i class="el-icon-right"></i>
  55. </div>
  56. </div>
  57. </div>
  58. </section>
  59. <el-dialog
  60. class="dialog_box"
  61. :visible.sync="dialogTableVisible"
  62. :show-close="false"
  63. :close-on-click-modal="false"
  64. :close-on-press-escape="false"
  65. :lock-scroll="false"
  66. width="740px"
  67. >
  68. <div slot="title" class="header_title">
  69. <span class="title_text">入驻园区</span>
  70. <img class="pointer" src="" alt="关闭" @click="dialogTableVisible = false" />
  71. </div>
  72. <div class="dialog_content">
  73. <el-form label-position="right" label-width="95px">
  74. <el-form-item label="*企业名称">
  75. <el-input v-model="input"></el-input>
  76. </el-form-item>
  77. <el-form-item label="*联系方式">
  78. <el-input v-model="input"></el-input>
  79. </el-form-item>
  80. <el-form-item label="*主营业务">
  81. <el-input v-model="input"></el-input>
  82. </el-form-item>
  83. <el-form-item label="预计产税">
  84. <el-input v-model="input"></el-input>
  85. </el-form-item>
  86. <el-form-item label="其他说明">
  87. <el-input
  88. type="textarea"
  89. :rows="5"
  90. resize="none"
  91. v-model="input"
  92. ></el-input>
  93. </el-form-item>
  94. <el-form-item>
  95. <el-button class="submit_btn" type="primary" :loading="loading">
  96. 提交
  97. </el-button>
  98. <div class="submit_tip">提交后园区工作人员将在1-3个工作日内联系您</div>
  99. </el-form-item>
  100. </el-form>
  101. </div>
  102. </el-dialog>
  103. </div>
  104. </template>
  105. <script>
  106. //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
  107. //例如:import 《组件名称》 from '《组件路径》';
  108. export default {
  109. //import引入的组件需要注入到对象中才能使用
  110. components: {},
  111. data() {
  112. //这里存放数据
  113. return {
  114. serviceTabs: [
  115. {
  116. name: "产业招商",
  117. children: ["集成电路", "人工智能", "生物医药", "电子信息"],
  118. },
  119. {
  120. name: "招商载体",
  121. children: ["集成电路", "人工智能", "生物医药", "电子信息"],
  122. },
  123. ],
  124. lists: [],
  125. dialogTableVisible: true,
  126. input: "",
  127. loading: false,
  128. };
  129. },
  130. //监听属性 类似于data概念
  131. computed: {},
  132. //监控data中的数据变化
  133. watch: {},
  134. //方法集合
  135. methods: {},
  136. //生命周期 - 创建完成(可以访问当前this实例)
  137. created() {},
  138. //生命周期 - 挂载完成(可以访问DOM元素)
  139. mounted() {},
  140. };
  141. </script>
  142. <style lang="scss" scoped>
  143. //@import url(); 引入公共css类
  144. .service {
  145. @include size(100%, 910px);
  146. @include flex(column, center, center, null);
  147. background: url("~@assets/image/index/bg_service.png") no-repeat;
  148. background-size: 100% 100%;
  149. }
  150. .title {
  151. @include font(36px, $color-white);
  152. padding: 60px 0 40px;
  153. @include border-box;
  154. }
  155. .service_box {
  156. @include size($wrapWidth, 700px);
  157. background: #fff;
  158. padding: 30px;
  159. @include border-box;
  160. @include flex(row, space-between, flex-start, null);
  161. .left {
  162. @include size(260px, 100%);
  163. .tab_box {
  164. @include size(100%, calc((100% - 140px) / 2));
  165. margin-bottom: 20px;
  166. padding: 25px 10px 25px 30px;
  167. @include border-box;
  168. .tab_ul {
  169. @include flex(row, flex-start, center, wrap);
  170. li {
  171. margin-top: 20px;
  172. margin-right: 25px;
  173. }
  174. }
  175. &:nth-child(1) {
  176. background-image: linear-gradient(90deg, #0689e7 0%, #eff8fe 100%);
  177. .tab_title {
  178. @include font(24px, $color-white);
  179. border-bottom: 1px solid #d2e8f6;
  180. padding-bottom: 20px;
  181. @include border-box;
  182. }
  183. .tab_ul {
  184. @include font(16px, $color-white);
  185. }
  186. }
  187. &:nth-child(2) {
  188. background-image: linear-gradient(90deg, #e5f3fd 0%, #fbfeff 100%);
  189. .tab_title {
  190. @include font(24px, #334a5f);
  191. border-bottom: 1px solid #d2e8f6;
  192. padding-bottom: 20px;
  193. @include border-box;
  194. }
  195. .tab_ul {
  196. @include font(16px, #637485);
  197. }
  198. }
  199. }
  200. .enter {
  201. @include size(260px, 100px);
  202. background-image: linear-gradient(135deg, #01d8ba 0%, #0086e7 100%);
  203. padding: 18px 18px 18px 26px;
  204. @include border-box;
  205. @include flex(row, space-between, center, null);
  206. .left {
  207. flex: 1;
  208. padding-right: 48px;
  209. @include border-box;
  210. @include flex(column, space-around, flex-start, null);
  211. .enter_title {
  212. @include font(26px, $color-white);
  213. }
  214. .enter_btn {
  215. width: 100%;
  216. @include font(16px, $color-white);
  217. @include flex(row, space-between, center, null);
  218. }
  219. }
  220. img {
  221. @include size(64px, 64px);
  222. border-radius: 50%;
  223. }
  224. }
  225. }
  226. .right {
  227. @include size(860px, 100%);
  228. padding: 40px 32px 40px 38px;
  229. @include border-box;
  230. background-image: linear-gradient(90deg, #e5f3fd 0%, #fbfeff 100%);
  231. .product_ul {
  232. height: 100%;
  233. @include flex(column, space-between, flex-start, null);
  234. li {
  235. @include size(100%, 160px);
  236. @include flex(row, space-between, center, null);
  237. img {
  238. @include size(260px, 100%);
  239. }
  240. .product_info {
  241. overflow: hidden;
  242. padding-left: 20px;
  243. height: 100%;
  244. @include border-box;
  245. flex: 1;
  246. @include flex(column, space-between, flex-start, null);
  247. }
  248. .product_title {
  249. width: 100%;
  250. @include font(18px, #334a5f);
  251. font-weight: 600;
  252. @include text-ellipsis;
  253. }
  254. .product_content {
  255. width: 100%;
  256. @include font(16px, #637485);
  257. @include text-ellipsis-multiple(3);
  258. }
  259. .product_price {
  260. width: 100%;
  261. @include font(16px, #637485);
  262. @include flex(row, space-between, center, null);
  263. .price {
  264. @include font(24px, #d9121a);
  265. }
  266. .more {
  267. @include font(24px, #637485);
  268. }
  269. }
  270. }
  271. }
  272. .have_no_product {
  273. @include flex(column, space-around, center, null);
  274. padding: 130px 88px;
  275. width: 100%;
  276. height: 100%;
  277. @include border-box;
  278. .service_text {
  279. @include font(36px, #f2faff);
  280. @include flex(row, center, center, wrap);
  281. line-height: 64px;
  282. }
  283. .service_btn {
  284. @include size(282px, 62px);
  285. @include font(20px, $color-white);
  286. background-image: linear-gradient(135deg, #01d8ba 0%, #0086e7 100%);
  287. border-radius: 8px;
  288. padding: 0 24px;
  289. @include border-box;
  290. @include flex(row, space-between, center, null);
  291. }
  292. }
  293. .product_bg {
  294. background: url("~@assets/image/index/product_bg.png") no-repeat;
  295. background-size: 100% 100%;
  296. }
  297. .service_bg {
  298. background: url("~@assets/image/index/service_bg.png") no-repeat;
  299. background-size: 100% 100%;
  300. }
  301. }
  302. .no_data_padding {
  303. padding: 28px;
  304. background: #e6f3fd;
  305. }
  306. }
  307. .dialog_box {
  308. ::v-deep .el-dialog {
  309. background-image: linear-gradient(180deg, #cce7fa 0%, #feffff 100%);
  310. }
  311. ::v-deep .el-dialog__header {
  312. padding: 0;
  313. }
  314. .header_title {
  315. @include size(100%, 72px);
  316. padding: 0 20px 0 30px;
  317. @include border-box;
  318. @include flex(row, space-between, center, null);
  319. border-bottom: solid 1px #637485;
  320. .title_text {
  321. @include font(24px, #334a5f);
  322. font-weight: 600;
  323. }
  324. img {
  325. @include size(36px, 36px);
  326. }
  327. }
  328. .dialog_content {
  329. padding: 0 85px;
  330. @include border-box;
  331. ::v-deep .el-form-item__label {
  332. @include font(16px, #637485);
  333. }
  334. ::v-deep .el-input__inner,
  335. ::v-deep .el-textarea__inner {
  336. background: transparent;
  337. border: 1px solid #41a6fe;
  338. }
  339. .submit_btn {
  340. width: 100%;
  341. background-image: linear-gradient(135deg, #42a6fe 0%, #0070d2 100%);
  342. }
  343. .submit_tip {
  344. @include font(16px, #334a5f);
  345. width: 100%;
  346. text-align: center;
  347. }
  348. }
  349. }
  350. </style>