From cf2391a86bdea88196d49cd33949570f74c0985d Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期一, 22 九月 2025 18:03:46 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- frontWuhu/src/components/business/OperaDetailsBWindow.vue | 203 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 203 insertions(+), 0 deletions(-) diff --git a/frontWuhu/src/components/business/OperaDetailsBWindow.vue b/frontWuhu/src/components/business/OperaDetailsBWindow.vue new file mode 100644 index 0000000..e11756e --- /dev/null +++ b/frontWuhu/src/components/business/OperaDetailsBWindow.vue @@ -0,0 +1,203 @@ +<template> + <GlobalWindow + :title="title" + :visible.sync="visible" + :confirm-working="isWorking" + :withFooter="false" + > + <div class="com" v-if="info"> + <div class="com_image"> + <img :src="info.fullLog" /> + </div> + <div class="com_info"> + <div class="com_info_title">{{info.name}}</div> + <div class="list_item_cate"> + <div class="list_item_cate_row" v-for="(item, index) in info.lablesList" :key="index">{{item}}</div> + </div> + <div class="com_info_text1">鏈嶅姟鍟嗭細{{info.serverName}}</div> + <div class="com_info_text">{{info.introduction}}</div> + <div class="com_info_text" style="color: #216EEE; cursor: pointer;" v-if="info.fullMutifileUrl" @click="openFile">搴旂敤闄勪欢</div> + <div class="com_info_btn" @click="openT" v-if="[1, 2].includes(userInfo.type)">鑱旂郴鎴戜滑</div> + <div class="com_info_x"></div> + <div class="com_info_content" v-html="info.details"></div> + </div> + <el-dialog + title="鑱旂郴鎴戜滑" + :destroy-on-close="true" + :visible.sync="show" + :close-on-click-modal="false" + :modal-append-to-body="false" + width="500px"> + <el-form :model="formData" label-position="right" :rules="rules" ref="ruleForm"> + <el-form-item label="鑱旂郴浜�" prop="name"> + <el-input v-model="formData.name"></el-input> + </el-form-item> + <el-form-item label="鑱旂郴鐢佃瘽" prop="phone"> + <el-input type="number" v-model="formData.phone" maxlength="11"></el-input> + </el-form-item> + <el-form-item label="绠�瑕佹弿杩�" prop="description"> + <el-input v-model="formData.description"></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="show = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submit">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> + </GlobalWindow> +</template> + +<script> +import BaseOpera from '@/components/base/BaseOpera' +import GlobalWindow from '@/components/common/GlobalWindow' +import { getById } from '@/api/business/applicationInfo' +import { create } from '@/api/business/demandRecord' +import { mapState } from 'vuex' +export default { + name: 'OperaDemandRecordWindow', + extends: BaseOpera, + components: { GlobalWindow }, + computed: { + ...mapState(['userInfo']) + }, + data () { + return { + form: {}, + formData: { + name: '', + phone: '', + description: '' + }, + rules: { + name: [ + { required: true, message: '璇疯緭鍏�', trigger: 'blur' } + ], + phone: [ + { required: true, message: '璇疯緭鍏�', trigger: 'blur' } + ] + }, + show: false, + info: null + } + }, + methods: { + async open (title, id) { + this.title = title + this.info = await getById(id) + this.info.lablesList = this.info.lables.split(',') || [] + this.visible = true + }, + openFile() { + window.open(this.info.fullMutifileUrl) + }, + openT() { + this.formData.name = '' + this.formData.phone = '' + this.formData.description = '' + this.show = true + }, + submit() { + this.$refs.ruleForm.validate((valid) => { + if (valid) { + create({ + applicationId: this.info.id, + linkName: this.formData.name, + linkPhone: this.formData.phone, + details: this.formData.description + }).then(res => { + this.$message.success('鎻愪氦鎴愬姛锛�') + this.show = false + }) + } else { + return false; + } + }); + } + } +} +</script> + +<style lang="scss" scoped> + .com { + width: 100%; + display: flex; + .com_image { + width: 140px; + height: 140px; + flex-shrink: 0; + background: #F4F7FC; + margin-right: 30px; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + img { + width: 100%; + } + } + .com_info { + flex: 1; + display: flex; + flex-direction: column; + .com_info_title { + font-weight: 600; + font-size: 26px; + color: #222222; + } + .com_info_text1 { + font-weight: 400; + font-size: 13px; + color: #666666; + margin-top: 15px; + } + .com_info_text { + font-weight: 400; + font-size: 16px; + color: #666666; + margin-top: 15px; + } + .com_info_btn { + width: 96px; + height: 36px; + line-height: 36px; + text-align: center; + font-weight: 400; + font-size: 14px; + color: #FFFFFF; + background: #216EEE; + border-radius: 2px; + cursor: pointer; + margin-top: 15px; + } + .com_info_x { + width: 100%; + height: 1px; + margin: 20px 0; + background-color: #DFE2E8; + } + .com_info_content { + width: 100%; + } + .list_item_cate { + width: 100%; + display: flex; + align-items: center; + margin-top: 12px; + .list_item_cate_row { + padding: 5px 8px; + box-sizing: border-box; + background: rgba(33,110,238,0.1); + border-radius: 2px; + font-weight: 400; + font-size: 12px; + color: #216EEE; + margin-right: 10px; + &:last-child { + margin-right: 0 !important; + } + } + } + } + } +</style> -- Gitblit v1.9.3