From 90d62a2ac29557fd8991b14d38faa645bd108cc4 Mon Sep 17 00:00:00 2001 From: “zhuo” <“zhuo@itcast.cn”> Date: 星期五, 11 八月 2023 17:17:01 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.110.209:9001/r/lims-before --- src/views/CNAS/satisfactionSurveys/index.vue | 556 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 400 insertions(+), 156 deletions(-) diff --git a/src/views/CNAS/satisfactionSurveys/index.vue b/src/views/CNAS/satisfactionSurveys/index.vue index ea69569..a0f1ee8 100644 --- a/src/views/CNAS/satisfactionSurveys/index.vue +++ b/src/views/CNAS/satisfactionSurveys/index.vue @@ -1,181 +1,425 @@ <template> - <div class="content-main survey"> - <div class="top-bar"> - <el-form ref="form" style="width: 1000px;" :inline="true"> - <!-- <el-input v-model="input" class="input-form" placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鏍峰搧鍚嶇О/鍨嬪彿瑙勬牸/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ" + <div class="content-main survey"> + <div class="top-bar"> + <el-form ref="form" style="width: 1000px;" :inline="true"> + <!-- <el-input v-model="input" class="input-form" placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鏍峰搧鍚嶇О/鍨嬪彿瑙勬牸/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ" @keyup.enter.native="getData" /> --> - <el-form-item style="width: 800px;"> - <el-col style="display: flex; justify-content: space-around;" :span="8"> - <el-row>璋冩煡鏃ユ湡:</el-row> - <el-row><el-input type="date" style="width: 130px;" v-model="surveyDate" placeholder="璇烽�夋嫨璋冩煡鏃ユ湡"></el-input></el-row> - </el-col> - <el-col style="display: flex; justify-content: space-around;" :span="8"> - <el-row>褰曞叆鏃ユ湡:</el-row> - <el-row><el-input style="width: 130px;" v-model="entryDate" placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"></el-input></el-row> - </el-col> - </el-form-item> - <el-form-item> - <el-button type="primary" size="small" @click="getData()">鏌ヨ</el-button> - <el-button type="primary" size="small" plain @click="resetData()">娓呯┖</el-button> - </el-form-item> - </el-form> - <el-form> - <el-button size="40" icon="el-icon-document-add" type="primary">鏂板璁板綍</el-button> - </el-form> - </div> - <div class="library-table"> - <div class="table-box"> - <el-table ref="tableData" :max-height="800" :cell-style="{ textAlign: 'center' }" - :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }" - :data="tableData" style="width: 100%"> - <el-table-column type="index" label="搴忓彿" min-width="5%"> - <template slot-scope="scope"> - <el-checkbox v-model="id" value="scope.row.id" ></el-checkbox> - </template> - </el-table-column> - <el-table-column prop="surveyDate" label="璋冩煡鏃ユ湡" min-width="10%"/> - <el-table-column prop="userUnit" label="瀹㈡埛鍗曚綅鍚嶇О" min-width="10%" /> - <el-table-column prop="projectName" label="椤圭洰鍚嶇О" min-width="10%" /> - <el-table-column prop="fillName" label="濉〃浜哄鍚�" min-width="10%" /> - <el-table-column prop="dateInfo" label="鏃ユ湡" min-width="10%" /> - <el-table-column prop="post" label="鑱屼綅" min-width="10%" /> - <el-table-column prop="telephone" label="鑱旂郴鐢佃瘽" min-width="10%" /> - <el-table-column prop="userName" label="褰曞叆浜�" min-width="10%" /> - <el-table-column label="闄勪欢" min-width="10%" > - <template> - <a style="color: #3894d1;">鏌ョ湅闄勪欢</a> - </template> - </el-table-column> - </el-table> - <!-- 鍒嗛〉鍣� --> - <div> - <el-pagination :current-page="page" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" - layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange" - @current-change="handleCurrentChange" /> - </div> + <el-form-item style="width: 800px;"> + <el-col style="display: flex; justify-content: space-around;" :span="12"> + <el-row>璋冩煡鏃ユ湡:</el-row> + <el-row style="width: 300px;"><el-input type="date" prefix-icon="el-icon-date" v-model="surveyDate" + placeholder="璇烽�夋嫨璋冩煡鏃ユ湡"></el-input></el-row> + </el-col> + <el-col style="display: flex; justify-content: space-around;" :span="12"> + <el-row>褰曞叆鏃ユ湡:</el-row> + <el-row style="width: 300px;"><el-input type="date" prefix-icon="el-icon-date" v-model="entryDate" + placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"></el-input></el-row> + </el-col> + </el-form-item> + <el-form-item> + <el-button type="primary" size="small" @click="getData()">鏌ヨ</el-button> + <el-button type="primary" size="small" plain @click="resetData()">娓呯┖</el-button> + </el-form-item> + </el-form> + <el-form> + <el-button size="40" @click="getFillName()" icon="el-icon-document-add" type="primary">鏂板璁板綍</el-button> + </el-form> + </div> + <div class="library-table"> + <div class="table-box"> + <el-table ref="tableData" :max-height="800" :cell-style="{ textAlign: 'center' }" + :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }" + :data="tableData" style="width: 100%"> + <el-table-column type="index" label="搴忓彿" min-width="5%"> + <template slot-scope="scope"> + <el-checkbox v-model="id" value="scope.row.id"></el-checkbox> + </template> + </el-table-column> + <el-table-column prop="surveyDate" label="璋冩煡鏃ユ湡" min-width="10%" /> + <el-table-column prop="userUnit" label="瀹㈡埛鍗曚綅鍚嶇О" min-width="10%" /> + <el-table-column prop="projectName" label="椤圭洰鍚嶇О" min-width="10%" /> + <el-table-column prop="fillName" label="濉〃浜哄鍚�" min-width="10%" /> + <el-table-column prop="dateInfo" label="鏃ユ湡" min-width="10%" /> + <el-table-column prop="post" label="鑱屼綅" min-width="10%" /> + <el-table-column prop="telephone" label="鑱旂郴鐢佃瘽" min-width="10%" /> + <el-table-column prop="userName" label="褰曞叆浜�" min-width="10%" /> + <el-table-column label="闄勪欢" min-width="10%"> + <template slot-scope="scope"> + <a style="color: #3894d1;" @click="look(scope.row.id)">鏌ョ湅闄勪欢</a> + </template> + </el-table-column> + </el-table> + <!-- 鍒嗛〉鍣� --> + <div> + <el-pagination :current-page="page" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" + layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange" + @current-change="handleCurrentChange" /> </div> </div> </div> - </template> + <el-dialog title="婊℃剰搴﹁皟鏌�" :visible.sync="dialogVisible" width="50%"> + <table class="table" style="width: 100%;"> + <tr> + <td> </td> + <td>婊℃剰</td> + <td>涓�鑸�</td> + <td>涓嶆弧鎰�</td> + <td>寤鸿</td> + </tr> + <tr> + <td>鏈嶅姟鎬佸害</td> + <td><el-radio v-model="serviceAttitude" label="0"><span hidden>婊℃剰</span></el-radio></td> + <td><el-radio v-model="serviceAttitude" label="1"><span hidden>涓�鑸�</span> </el-radio></td> + <td><el-radio v-model="serviceAttitude" label="2"><span hidden>涓嶆弧鎰�</span></el-radio></td> + <td><el-input v-model="serviceAttitudeInput" placeholder="璇疯緭鍏ュ唴瀹�"></el-input></td> + </tr> + <tr> + <td>鎶�鏈兘鍔�</td> + <td><el-radio v-model="technicalPower" label="0"><span hidden>婊℃剰</span></el-radio></td> + <td><el-radio v-model="technicalPower" label="1"><span hidden>涓�鑸�</span> </el-radio></td> + <td><el-radio v-model="technicalPower" label="2"><span hidden>涓嶆弧鎰�</span></el-radio></td> + <td><el-input v-model="technicalPowerInput" placeholder="璇疯緭鍏ュ唴瀹�"></el-input></td> + </tr> + <tr> + <td>妫�娴嬪伐浣�</td> + <td><el-radio v-model="testJob" label="0"><span hidden>婊℃剰</span></el-radio></td> + <td><el-radio v-model="testJob" label="1"><span hidden>涓�鑸�</span> </el-radio></td> + <td><el-radio v-model="testJob" label="2"><span hidden>涓嶆弧鎰�</span></el-radio></td> + <td><el-input v-model="testJobInput" placeholder="璇疯緭鍏ュ唴瀹�"></el-input></td> + </tr> + <tr> + <td>鏀惰垂鍚堢悊鎬�</td> + <td><el-radio v-model="reasonableCharge" label="0"><span hidden>婊℃剰</span></el-radio></td> + <td><el-radio v-model="reasonableCharge" label="1"><span hidden>涓�鑸�</span> </el-radio></td> + <td><el-radio v-model="reasonableCharge" label="2"><span hidden>涓嶆弧鎰�</span></el-radio></td> + <td><el-input v-model="reasonableChargeInput" placeholder="璇疯緭鍏ュ唴瀹�"></el-input></td> + </tr> + <tr> + <td>鏀硅繘瑕佹眰</td> + <td colspan="4"> + <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="璇疯緭鍏ュ唴瀹�" + v-model="improvementRequirements"> + </el-input> + </td> + </tr> + <tr> + <td>鍏朵粬琛ュ厖</td> + <td colspan="4"> + <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="璇疯緭鍏ュ唴瀹�" + v-model="otherSupplements"> + </el-input> + </td> + </tr> + </table> + <!-- <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="dialogVisible = false">纭� 瀹�</el-button> + </span> --> + </el-dialog> + <el-dialog title="鏂板婊℃剰搴﹁皟鏌ヨ褰�" :visible.sync="dialogVisible2" width="50%"> + <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> + <el-row> + <el-col :span="12"> + <el-form-item label="璋冩煡鏃ユ湡锛�" prop="surveyDate"> + <el-input style="width: 200px;" type="date" v-model="ruleForm.surveyDate"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="瀹㈡埛鍗曚綅锛�" prop="unitName"> + <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ュ鎴峰崟浣嶅悕绉�" v-model="ruleForm.unitName"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="椤圭洰鍚嶇О锛�" prop="projectName"> + <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ラ」鐩悕绉�" v-model="ruleForm.projectName"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏃ユ湡锛�" prop="dateInfo"> + <el-input style="width: 200px;" type="date" v-model="ruleForm.dateInfo"></el-input> + </el-form-item> + </el-col> + </el-row> + <!-- 濉〃浜哄鍚� --> + <el-row> + <el-col :span="12"> + <el-form-item label="濉〃浜哄鍚嶏細" prop="fillName"> + <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ュ~琛ㄤ汉濮撳悕" v-model="ruleForm.fillName"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鑱屼綅锛�" prop="post"> + <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ヨ亴浣�" v-model="ruleForm.post"></el-input> + </el-form-item> + </el-col> + </el-row> + <!-- 鑱旂郴鐢佃瘽/褰曞叆鏃ユ湡 --> + <el-row> + <el-col :span="12"> + <el-form-item label="鑱旂郴鐢佃瘽锛�" prop="telephone"> + <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ヨ亴浣�" v-model="ruleForm.telephone"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="褰曞叆鏃ユ湡锛�" prop="entryDate"> + <el-input style="width: 200px;" type="date" v-model="ruleForm.entryDate"></el-input> + </el-form-item> + </el-col> + </el-row> + <!-- 褰曞叆浜� --> + <el-row> + <el-col :span="12"> + <el-form-item label="褰曞叆浜猴細" prop="userName"> + <el-input style="width: 200px;" type="text" placeholder="璇疯緭鍏ュ綍鍏ヤ汉濮撳悕" v-model="ruleForm.userName"></el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="闄勪欢涓婁紶锛�"> + <el-upload class="upload-demo" :action="path" + :on-preview="handlePreview" :on-remove="handleRemove" :before-remove="beforeRemove" multiple :limit="1" + :on-exceed="handleExceed" :file-list="fileList" :on-success="fileUploadSuccess()"> + <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + </el-upload> + </el-form-item> + </el-col> + </el-row> + <!-- 鎻愪氦 --> + <el-row> + <el-col :span="8"> + <el-form-item> + <el-button @click="resetForm('ruleForm')">鍙栨秷</el-button> + <el-button type="primary" @click="submitForm('ruleForm')">淇濆瓨</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> + </div> +</template> - <script> - import { get, post } from '@/api/util/requestUtil'; - import urlInfo from '../../../api/urlEnum/satisfactionSurveys.js' - export default { - data() { - return { - input: '', - tableData: [], - page: 1, - total: 0, - pageSize: 10, - entryDate: null, - surveyDate: null, - id: 0, - } +<script> +import { get, post } from '@/api/util/requestUtil'; +import urlInfo from '../../../api/urlEnum/satisfactionSurveys.js' +export default { + data() { + return { + input: '', + tableData: [], + page: 1, + total: 0, + pageSize: 10, + entryDate: null, + surveyDate: null, + id: 0, + dialogVisible: false, + serviceAttitude: 3, + serviceAttitudeInput: "鏃�", + technicalPower: 3, + technicalPowerInput: "鏃�", + testJob: 3, + testJobInput: "鏃�", + reasonableCharge: 3, + reasonableChargeInput: "鏃�", + otherSupplements: "鏃�", + improvementRequirements: "鏃�", + dialogVisible2: false, + path: 'http://192.168.110.254:1234/cnasSatisfactionSurvey/uploadFile', + ruleForm: { + surveyDate: '', + unitName: '', + projectName: '', + dateInfo: '', + fillName: '', + post: '', + telephone: '', + entryDate: '', + userName: '' + }, + rules: { + surveyDate: [ + { type: 'date', required: true, message: '璇烽�夋嫨璋冩煡鏃ユ湡', trigger: 'change' } + ], + unitName: [ + { required: true, message: '璇疯緭鍏ュ鎴峰崟浣嶅悕绉�', trigger: 'blur' }, + ], + projectName: [ + { required: true, message: '璇疯緭鍏ラ」鐩悕绉�', trigger: 'blur' } + ], + entryDate: [ + { type: 'date', required: true, message: '璇烽�夋嫨褰曞叆鏃ユ湡', trigger: 'change' } + ], + telephone: [ + { required: true, message: '璇疯緭鍏ヨ仈绯荤數璇�', trigger: 'blur' } + ] + }, + fileList: [], + } + }, + created() { + + }, + mounted() { + this.getData() + }, + methods: { + handleCurrentChange() { + this.getData(); }, - created() { - + look(id) { + let str = "/$"; + this.dialogVisible = true + let data = this.tableData.filter(res => { + return res.id == id + })[0] + let serviceAttitudeInfo = data.serviceAttitude.split(str); + this.serviceAttitude = serviceAttitudeInfo[0] + this.serviceAttitudeInput = serviceAttitudeInfo[1] + let technicalPowerInfo = data.technicalPower.split(str) + this.technicalPower = technicalPowerInfo[0] + this.technicalPowerInput = technicalPowerInfo[1] + let testJobInfo = data.testJob.split(str) + this.testJob = testJobInfo[0] + this.testJobInput = testJobInfo[1] + let reasonableChargeInfo = data.reasonableCharge.split(str) + this.reasonableCharge = reasonableChargeInfo[0] + this.reasonableChargeInput = reasonableChargeInfo[1] + this.otherSupplements = data.otherSupplements + this.improvementRequirements = data.improvementRequirements }, - mounted() { + handleSizeChange() { + + }, + exportData() { + + }, + // 閲嶇疆鎸夐挳 + resetData() { + this.page = 1 + this.pageSize = 10 + this.surveyDate = null + this.entryDate = null this.getData() }, - methods: { - handleCurrentChange() { - this.getData(); - }, - handleSizeChange() { - - }, - exportData() { - - }, - // 閲嶇疆鎸夐挳 - resetData() { - this.page = 1 - this.pageSize = 10 - this.surveyDate=null - this.entryDate=null - this.getData() - }, - async getData() { - let param = { - "currentPage": this.page, - 'pageNum': this.pageSize, - "surveyDate": this.surveyDate, - "entryDate": this.entryDate - } - let res = await get(urlInfo.url.getCnasSatisfactionSurvey, param) - this.tableData = res.data.cnasSatisfactionSurveyList - this.total = res.data.total + async getData() { + let param = { + "currentPage": this.page, + 'pageNum': this.pageSize, + "surveyDate": this.surveyDate, + "entryDate": this.entryDate } + let res = await get(urlInfo.url.getCnasSatisfactionSurvey, param) + this.tableData = res.data.cnasSatisfactionSurveyList + this.total = res.data.total + }, + getFillName() { + this.dialogVisible2 = true + // get(urlInfo.url.getFillNameAndId) + }, + submitForm(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + alert('submit!'); + } else { + console.log('error submit!!'); + return false; + } + }); + }, + resetForm(formName) { + this.$refs[formName].resetFields(); + }, + handleRemove(file, fileList) { + console.log(file, fileList); + }, + handlePreview(file) { + console.log(file); + }, + handleExceed(files, fileList) { + this.$message.warning(`褰撳墠闄愬埗閫夋嫨 1 涓枃浠讹紝鏈閫夋嫨浜� ${files.length} 涓枃浠讹紝鍏遍�夋嫨浜� ${files.length + fileList.length} 涓枃浠禶); + }, + beforeRemove(file, fileList) { + return this.$confirm(`纭畾绉婚櫎 ${file.name}锛焋); + }, + fileUploadSuccess(res){ + console.log(res); } } - </script> +} +</script> - <style lang="scss" scoped> - .top-bar { - margin: -25px -15px; - background: #fff; +<style lang="scss" scoped> +.top-bar { + margin: -25px -15px; + background: #fff; + display: flex; + justify-content: space-between; + padding: 5px 24px 0px 24px; + + .input-form { + width: 800px; + } + + .el-dropdown-link { + cursor: pointer; + color: #409EFF !important; + } + + .el-icon-arrow-down { + font-size: 12px !important; + } + + +} + +.library-table { + background-color: #fff; + flex: 1; + margin: 0px -15px; + margin-top: 40px; + display: flex; + flex-direction: column; + + .table-header { + padding: 20px; display: flex; justify-content: space-between; - padding: 5px 24px 0px 24px; - - .input-form { - width: 800px; + + .el-form-item { + margin-bottom: 30px !important; } - - .el-dropdown-link { - cursor: pointer; - color: #409EFF !important; - } - - .el-icon-arrow-down { - font-size: 12px !important; - } - - } - - .library-table { - background-color: #fff; + + .table-box { + padding: 0px 20px; + margin-top: 20px; flex: 1; - margin: 0px -15px; - margin-top: 40px; + background: #fff; display: flex; flex-direction: column; - - .table-header { - padding: 20px; + + >div:nth-child(2) { display: flex; - justify-content: space-between; - - .el-form-item { - margin-bottom: 30px !important; - } + justify-content: end; + margin: 10px 0; } - - .table-box { - padding: 0px 20px; - margin-top: 20px; - flex: 1; - background: #fff; - display: flex; - flex-direction: column; - - >div:nth-child(2) { - display: flex; - justify-content: end; - margin: 10px 0; - } - - } + } - </style> - <style > - .content-main { - .el-form .el-form-item .el-form-item__content { - width: 100% !important; - } +} + +.table, +tr, +td { + padding: 10px; +} +</style> +<style > +.content-main { + .el-form .el-form-item .el-form-item__content { + width: 100% !important; } - </style> +} +</style> -- Gitblit v1.9.3