From 8e1e40f0694029dcd468428217ca09376246b9e4 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期五, 11 八月 2023 17:13:59 +0800
Subject: [PATCH] 	modified:   src/api/urlEnum/satisfactionSurveys.js 	modified:   src/views/CNAS/satisfactionSurveys/index.vue

---
 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