Przeglądaj źródła

Merge branch 'master' of https://git.cocorobo.cn/CocoRoboLabs/ssti-CollegeManage

yuanyiming 2 lat temu
rodzic
commit
0612a80649

BIN
public/file/附件 2:创客专项资金项目申请表(个人创客)模板.doc


BIN
public/file/附件 2:创客专项资金项目申请表(创客活动、个人创客)模板.docx


BIN
public/file/附件 2:创客专项资金项目申请表(创客活动)模板.doc


+ 72 - 1
src/components/tool/getWord.js

@@ -590,11 +590,82 @@ function ActivityWord(data){
     x.send()
 }
 
+//创客活动的申请表
+function makerActivityWord(data,total){
+    let _url = "./file/附件 2:创客专项资金项目申请表(创客活动、个人创客)模板.docx";
+    const x = new XMLHttpRequest();
+    x.open("GET", _url, true);
+    x.responseType = "blob";
+    x.onload = function (e) {
+        const blob = x.response;
+        //转成binary
+        const reader = new FileReader();
+        reader.readAsArrayBuffer(blob);
+        reader.onload=function(a){
+            const buffer = reader.result;
+            const binary = new Uint8Array(buffer)
+            //创建一个PizZip实例
+            const zip = new PizZip(binary);
+            // 将模板内容加载到 Docxtemplater 中
+            const doc = new Docxtemplater().loadZip(zip);
+          
+            //模板数据
+            let wordData = {...data,total}
+            //处理数据
+            wordData['MP1'] = wordData['expenditureMothPlan'][0];
+            wordData['MP2'] = wordData['expenditureMothPlan'][1];
+            wordData['MP3'] = wordData['expenditureMothPlan'][2];
+            wordData['MP4'] = wordData['expenditureMothPlan'][3];
+            wordData['MP5'] = wordData['expenditureMothPlan'][4];
+            wordData['MP6'] = wordData['expenditureMothPlan'][5];
+            wordData['MP7'] = wordData['expenditureMothPlan'][6];
+            wordData['MP8'] = wordData['expenditureMothPlan'][7];
+            wordData['MP9'] = wordData['expenditureMothPlan'][8];
+            wordData['MP10'] = wordData['expenditureMothPlan'][9];
+            wordData['MP11'] = wordData['expenditureMothPlan'][10];
+            wordData['MP12'] = wordData['expenditureMothPlan'][11];
+            wordData['beTime'] = wordData['activityTime'][0].split(' ')[0]
+            wordData['edTime'] = wordData['activityTime'][1].split(' ')[0]
+            wordData['device'] = wordData['fund']['device']
+            wordData['Material'] = wordData['fund']['Material']
+            wordData['processing'] = wordData['fund']['processing']
+            wordData['Collaboration'] = wordData['fund']['Collaboration']
+            wordData['APPRAISAL'] = wordData['fund']['APPRAISAL']
+            wordData['entery'] = wordData['fund']['entery']
+            wordData['activities'] = wordData['fund']['activities']
+            wordData['Transaction'] = wordData['fund']['Transaction']
+            wordData['type'] = Boolean(wordData['type'])
+
+            doc.setData(wordData);
+
+            doc.render();
+
+            //获取渲染后的文本
+            const output = doc.getZip().generate({
+                type: "blob",
+                mimeType:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+                compression: "DEFLATE",
+            });
+            let link = document.createElement("a");
+            link.download = `附件 2:创客专项资金项目申请表(${wordData['type']?'个人创客':'创客活动'}).docx`;
+            link.style.display = "none";
+            let blob = new Blob([output]);
+            link.href = URL.createObjectURL(blob);
+            document.body.appendChild(link);
+            link.click();
+            document.body.removeChild(link);
+        }
+        return
+    }
+    x.send()
+}
+
 
 export{
     MakerSpaceWord,
     getMakerSpaceWord,
     MakerStudentWord,
     ActivityWord,
-    getWord
+    getWord,
+    makerActivityWord,
 }

+ 10 - 1
src/views/activityManage/makerActivityWordDetail.vue

@@ -12,7 +12,7 @@
         <markeractivityWordShow v-if="wordData['state']!=0" :wordData="wordData" :total="total"/>
         <div>
             <el-button type="primary" v-if="wordData['state']==0" @click="test">立即修改</el-button>
-            <el-button type="primary">下载表单</el-button>
+            <el-button type="primary" @click="getActivityWord">下载表单</el-button>
         </div>
         <el-dialog
           title="提示"
@@ -33,6 +33,7 @@
   import markeractivityWord from './components/markeractivityWord.vue'
   import NomMarkerWord from './components/NomMarkerWord.vue'
   import markeractivityWordShow from './components/markeractivityWordShow.vue'
+  import {makerActivityWord} from '@/components/tool/getWord'
       export default {
         components:{markeractivityWord,NomMarkerWord,markeractivityWordShow},
         data() {
@@ -245,6 +246,14 @@
               }).catch(err=>{
                 console.log(err)
               })
+            },
+            getActivityWord(){
+              // if(this.wordData['type']==0){
+                // this.$message.info("正在下载创客活动表单");
+                makerActivityWord(this.wordData,this.total)
+              // }else if(this.wordData['type']==1){
+                // this.$message.info("正在下载个人创客表单")
+              // }
             }
           },
           computed:{

+ 54 - 47
src/views/activityManage/makerActvity.vue

@@ -8,54 +8,60 @@
     <hr>
 
 <!-- 搜索框开始 -->
-    <div class="selects">
-      <div class="selectsBlock">
-        <div class="selectLabel">项目筛选</div>
-        <el-select v-model="pavalues.value" @change="getData" placeholder="请选择">
-          <el-option label="所有项目" value=""/>
-          <el-option
-            v-for="item in options"
-            :key="item.courseId"
-            :label="item.title"
-            :value="item.courseId">
-          </el-option>
-        </el-select>
+    <div class="selectInp">
+      <div class="manageSelects">
+        <div class="selectsBlock">
+          <div class="selectLabel">项目筛选</div>
+          <el-select v-model="pavalues.value" @change="getData" placeholder="请选择">
+            <el-option label="所有项目" value=""/>
+            <el-option
+              v-for="item in options"
+              :key="item.courseId"
+              :label="item.title"
+              :value="item.courseId">
+            </el-option>
+          </el-select>
+        </div>
+
+        <div class="selectsBlock">
+          <div class="selectLabel">所在部门</div>
+          <el-select v-model="pavalues.value1" @change="getData" placeholder="请选择">
+            <el-option label="所有部门" value=""/>
+            <el-option
+              v-for="item in options1"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </div>
+
+        <div class="selectsBlock">
+          <div class="selectLabel">负责人</div>
+          <el-select v-model="pavalues.value2" @change="getData" placeholder="请选择">
+            <el-option label="所有负责人" value=""></el-option>
+            <el-option
+              v-for="item in options2"
+              :key="item.pro_leader"
+              :label="item.pro_leader"
+              :value="item.pro_leader">
+            </el-option>
+          </el-select>
+        </div>
+
+        <div class="selectsBlock">
+          <div class="selectLabel">状态</div>
+          <el-select v-model="pavalues.value3" @change="getData" placeholder="请选择">
+            <el-option label="所有状态" value=""/>
+            <el-option label="未审核" :value="0"/>
+            <el-option label="未报销" :value="1"/> 
+            <el-option label="已报销" :value="2"/>
+          </el-select>
+        </div>
       </div>
-
-      <div class="selectsBlock">
-        <div class="selectLabel">所在部门</div>
-        <el-select v-model="pavalues.value1" @change="getData" placeholder="请选择">
-          <el-option label="所有部门" value=""/>
-          <el-option
-            v-for="item in options1"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id">
-          </el-option>
-        </el-select>
-      </div>
-
-      <div class="selectsBlock">
-        <div class="selectLabel">负责人</div>
-        <el-select v-model="pavalues.value2" @change="getData" placeholder="请选择">
-          <el-option label="所有负责人" value=""></el-option>
-          <el-option
-            v-for="item in options2"
-            :key="item.pro_leader"
-            :label="item.pro_leader"
-            :value="item.pro_leader">
-          </el-option>
-        </el-select>
-      </div>
-
-      <div class="selectsBlock">
-        <div class="selectLabel">状态</div>
-        <el-select v-model="pavalues.value3" @change="getData" placeholder="请选择">
-          <el-option label="所有状态" value=""/>
-          <el-option label="未审核" :value="0"/>
-          <el-option label="未报销" :value="1"/> 
-          <el-option label="已报销" :value="2"/>
-        </el-select>
+      <div class="ProjectManagementQuery">
+        <el-input v-model="input" placeholder="请输入项目名称/编号"></el-input>
+        <el-button type="primary" class="btn" size="mini" @click="getData">查询</el-button>
       </div>
 
     </div>
@@ -559,6 +565,7 @@ import { ActivityWord } from '@/components/tool/getWord';
             cid:this.pavalues.value1,
             leader:this.pavalues.value2,
             state:this.pavalues.value3,
+            inp:this.input,
             page:this.Page.nowPage,
             lim:this.Page.lim,
           }).then(res=>{

+ 72 - 65
src/views/projectApply/projectApplication.vue

@@ -8,74 +8,80 @@
     <hr>
 
 <!-- 搜索框开始 -->
-    <div class="selects">
-      <div class="selectsBlock">
-        <div class="selectLabel">项目筛选</div>
-        <el-select v-model="selectInp.filter" @change="getData" placeholder="我的项目">
-          <el-option label="所有项目"  value=""></el-option>
-          <el-option
-            v-for="item in options.projectFilter"
-            :key="item.courseId"
-            :label="item.title"
-            :value="item.courseId">
-          </el-option>
-        </el-select>
-      </div>
+    <div class="selectInp">
+      <div class="manageSelects">
+        <div class="selectsBlock">
+          <div class="selectLabel">项目筛选</div>
+          <el-select v-model="selectInp.filter" @change="getData" placeholder="我的项目">
+            <el-option label="所有项目"  value=""></el-option>
+            <el-option
+              v-for="item in options.projectFilter"
+              :key="item.courseId"
+              :label="item.title"
+              :value="item.courseId">
+            </el-option>
+          </el-select>
+        </div>
 
-      <div class="selectsBlock">
-        <div class="selectLabel">部门</div>
-        <el-select v-model="selectInp.department" @change="getData" placeholder="请选择">
-          <el-option label="所有部门" value=""></el-option>
-          <el-option
-            v-for="item in options.department"
-            :key="item.classid"
-            :label="item.name"
-            :value="item.classid">
-          </el-option>
-        </el-select>
-      </div>
+        <div class="selectsBlock">
+          <div class="selectLabel">部门</div>
+          <el-select v-model="selectInp.department" @change="getData" placeholder="请选择">
+            <el-option label="所有部门" value=""></el-option>
+            <el-option
+              v-for="item in options.department"
+              :key="item.classid"
+              :label="item.name"
+              :value="item.classid">
+            </el-option>
+          </el-select>
+        </div>
 
-      <div class="selectsBlock">
-        <div class="selectLabel">分类</div>
-        <el-select v-model="selectInp.sort" @change="getData" placeholder="请选择">
-          <el-option label="所有分类" value=""></el-option>
-          <el-option
-            v-for="item in options.sort"
-            :key="item.typeid"
-            :label="item.name"
-            :value="item.typeid">
-          </el-option>
-        </el-select>
-      </div>
-      <!-- <div class="selectInp">
-        <div class="ProjectManagementQuery">
-          <el-input v-model="selectText" @change="getData" placeholder="请输入项目名称"></el-input>
-          <el-button type="primary" class="btn" @click="getData" size="mini">查询</el-button>
+        <div class="selectsBlock">
+          <div class="selectLabel">分类</div>
+          <el-select v-model="selectInp.sort" @change="getData" placeholder="请选择">
+            <el-option label="所有分类" value=""></el-option>
+            <el-option
+              v-for="item in options.sort"
+              :key="item.typeid"
+              :label="item.name"
+              :value="item.typeid">
+            </el-option>
+          </el-select>
+        </div>
+        <!-- <div class="selectInp">
+          <div class="ProjectManagementQuery">
+            <el-input v-model="selectText" @change="getData" placeholder="请输入项目名称"></el-input>
+            <el-button type="primary" class="btn" @click="getData" size="mini">查询</el-button>
+          </div>
+        </div> -->
+        <div class="selectsBlock">
+          <div class="selectLabel">负责人</div>
+          <el-select v-model="selectInp.person" @change="getData" placeholder="请选择">
+            <el-option label="所有负责人" value=""></el-option>
+            <el-option
+              v-for="(item,index) in options.person"
+              :key="index"
+              :label="item.pro_leader"
+              :value="item.pro_leader">
+            </el-option>
+          </el-select>
         </div>
-      </div> -->
-      <div class="selectsBlock">
-        <div class="selectLabel">负责人</div>
-        <el-select v-model="selectInp.person" @change="getData" placeholder="请选择">
-          <el-option label="所有负责人" value=""></el-option>
-          <el-option
-            v-for="(item,index) in options.person"
-            :key="index"
-            :label="item.pro_leader"
-            :value="item.pro_leader">
-          </el-option>
-        </el-select>
-      </div>
 
-      <div class="selectsBlock">
-        <div class="selectLabel">状态</div>
-        <el-select v-model="selectInp.state" @change="getData" placeholder="请选择">
-          <el-option
-            v-for="item in options.state"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-          </el-option>
-        </el-select>
+        <div class="selectsBlock">
+          <div class="selectLabel">状态</div>
+          <el-select v-model="selectInp.state" @change="getData" placeholder="请选择">
+            <el-option
+              v-for="item in options.state"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+      <div class="ProjectManagementQuery">
+        <el-input v-model="input" placeholder="请输入项目名称/编号"></el-input>
+        <el-button type="primary" class="btn" size="mini" @click="getData">查询</el-button>
       </div>
     </div>
     
@@ -521,7 +527,7 @@ import studentMakerProjectPreview from '@/components/studentMakerProjectPreview.
             leader:this.selectInp.person,  //负责人
             st:this.selectInp.state,  //审核状态
             year:"",
-            textInp:'',
+            textInp:this.input,
             page:this.table.currentPage,  //当前页
             lim:this.table.packageSize  //限制获取几条数据
           }
@@ -531,6 +537,7 @@ import studentMakerProjectPreview from '@/components/studentMakerProjectPreview.
             .get(this.$store.state.api+'/SelectAllProject',param)
               .then(res=>{
                 let data=res.data;
+                console.log(data)
                 if (data[0].length==0 && data[5][0]['total'] != 0) {
                   this.table.currentPage=1
                   return this.getData()

+ 1 - 1
src/views/projectManage/ProjectManagement.vue

@@ -190,7 +190,7 @@
         </el-table-column>
         <el-table-column
           prop="operation"
-          width="500"
+          width="350"
           align="center"
           label="操作"
           >

+ 2 - 0
src/views/projectManage/components/ProjectManagement3.vue

@@ -128,6 +128,7 @@
               cid:"",
               leader:'',
               state:"",
+              input:"",
               page:this.table.currentPage,
               lim:this.table.packageSize
             }
@@ -135,6 +136,7 @@
             this.ajax
                   .get(this.$store.state.api+'/GetAllActivity',param)
                   .then(res=>{
+                    console.log(res)
                     this.tableData=res.data[0]
                     this.table.total=res.data[4][0].total
                     this.loading = false;

+ 17 - 3
src/views/projectSettlement/projectSettlement.vue

@@ -6,7 +6,8 @@
     </div>
     <hr>
     <!-- 搜索栏开始 -->
-    <div class="selects">
+    <div class="selectInp">
+      <div class="manageSelects">
       <div class="selectsBlock">
         <span class="selectLabel">项目筛选</span>
         <el-select v-model="selectInp.filter" @change="getData" placeholder="我的项目">
@@ -72,6 +73,11 @@
           </el-option>
         </el-select>
       </div>
+      </div>
+      <div class="ProjectManagementQuery">
+        <el-input v-model="input" placeholder="请输入项目名称/编号"></el-input>
+        <el-button type="primary" class="btn" size="mini" @click="getData">查询</el-button>
+      </div>
     </div>
 <!-- 搜索栏结束 -->
 
@@ -88,6 +94,12 @@
           type="selection"
           >
         </el-table-column> -->
+        <el-table-column
+        prop="ProjectNo"
+        label="项目编号"
+        align="center"
+        min-width="7%">
+        </el-table-column>
         <el-table-column
           prop="title"
           label="项目名称"
@@ -114,9 +126,9 @@
         </el-table-column>
         <el-table-column
           prop="time"
-          label="时间"
+          label="结项时间"
           align="center"
-          min-width="10%">
+          min-width="12%">
         </el-table-column>
         <el-table-column
           prop="phone"
@@ -201,6 +213,7 @@
         return {
           submitHint:false,
           loading:false,
+          input:"",//查询输入框
           iid:'',
           tit:'',
           options:{    //头部搜索框下拉框数据
@@ -276,6 +289,7 @@
             tid:this.selectInp.sort,    //分类
             leader:this.selectInp.person,  //负责人
             st:this.selectInp.state,  //审核状态
+            inp:this.input,
             page:this.table.currentPage,  //当前页
             lim:this.table.packageSize  //限制获取几条数据
           }