证书预览,审批意见
Showing
7 changed files
with
189 additions
and
88 deletions
| ... | @@ -73,6 +73,7 @@ export function bdcqzPreview (data) { | ... | @@ -73,6 +73,7 @@ export function bdcqzPreview (data) { |
| 73 | return request({ | 73 | return request({ |
| 74 | url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/bdcqzPreview', | 74 | url: SERVER.SERVERAPI + '/rest/ywbl/bdcqz/bdcqzPreview', |
| 75 | method: 'post', | 75 | method: 'post', |
| 76 | data | 76 | data, |
| 77 | responseType: 'blob' | ||
| 77 | }) | 78 | }) |
| 78 | } | 79 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -119,6 +119,25 @@ export function saveSpyjBySlsq (data) { | ... | @@ -119,6 +119,25 @@ export function saveSpyjBySlsq (data) { |
| 119 | data | 119 | data |
| 120 | }) | 120 | }) |
| 121 | } | 121 | } |
| 122 | |||
| 123 | // 获取用户常用意见 | ||
| 124 | export function getUserCommonOpinion (data) { | ||
| 125 | return request({ | ||
| 126 | url: SERVER.SERVERAPI + '/rest/ywbl/opinion/getUserCommonOpinion', | ||
| 127 | method: 'post', | ||
| 128 | data | ||
| 129 | }) | ||
| 130 | } | ||
| 131 | |||
| 132 | // 新增用户常用意见 | ||
| 133 | export function addUserCommonOpinion (params) { | ||
| 134 | return request({ | ||
| 135 | url: SERVER.SERVERAPI + '/rest/ywbl/opinion/addUserCommonOpinion', | ||
| 136 | method: 'get', | ||
| 137 | params | ||
| 138 | }) | ||
| 139 | } | ||
| 140 | |||
| 122 | // 登簿接口 | 141 | // 登簿接口 |
| 123 | export function record (data) { | 142 | export function record (data) { |
| 124 | return request({ | 143 | return request({ | ... | ... |
| 1 | <template> | ||
| 2 | <dialogBox title="常用意见" width="60%" isMain v-model="value" @closeDialog="closeDialog" :isButton="false"> | ||
| 3 | <div> | ||
| 4 | <el-button type="primary" native-type="submit" @click="openDialog()">新增常用</el-button> | ||
| 5 | <lb-table :page-size="pageData.size" border :current-page.sync="pageData.current" :total="tableData.total" | ||
| 6 | @size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="columns" | ||
| 7 | :data="tableData.data"> | ||
| 8 | </lb-table> | ||
| 9 | <el-dialog title="新增意见" :visible.sync="addDialog" width="50%" :modal="false" top="30vh"> | ||
| 10 | <div class="invalid-reson">常用意见:</div> | ||
| 11 | <el-input v-model="commonOpinion" placeholder="请输入常用意见" type="textarea" :rows="4"></el-input> | ||
| 12 | <div class="dialog-footer"> | ||
| 13 | <el-button @click="closeaddDiglog()">取 消</el-button> | ||
| 14 | <el-button type="primary" @click="addOpinion()">确 定</el-button> | ||
| 15 | </div> | ||
| 16 | </el-dialog> | ||
| 17 | </div> | ||
| 18 | </dialogBox> | ||
| 19 | </template> | ||
| 20 | <script> | ||
| 21 | import table from "@/utils/mixin/table"; | ||
| 22 | import { getUserCommonOpinion,addUserCommonOpinion } from "@/api/fqsq.js" | ||
| 23 | export default { | ||
| 24 | components: {}, | ||
| 25 | mixins: [table], | ||
| 26 | props: { | ||
| 27 | value: { type: Boolean, default: false }, | ||
| 28 | }, | ||
| 29 | data () { | ||
| 30 | return { | ||
| 31 | columns: [ | ||
| 32 | { | ||
| 33 | label: '序号', | ||
| 34 | type: 'index', | ||
| 35 | width: '50', | ||
| 36 | }, | ||
| 37 | { | ||
| 38 | prop: "opinion", | ||
| 39 | label: "意见描述", | ||
| 40 | }, | ||
| 41 | { | ||
| 42 | label: '操作', | ||
| 43 | width: '100', | ||
| 44 | render: (h, scope) => { | ||
| 45 | return ( | ||
| 46 | <div> | ||
| 47 | <el-button type="text" onClick={() => { this.useCommonOpinion(scope.row) }}>使用</el-button> | ||
| 48 | </div> | ||
| 49 | ) | ||
| 50 | } | ||
| 51 | } | ||
| 52 | ], | ||
| 53 | tableData: { | ||
| 54 | total: 0, | ||
| 55 | data: [], | ||
| 56 | }, | ||
| 57 | addDialog: false, | ||
| 58 | commonOpinion: '' | ||
| 59 | } | ||
| 60 | }, | ||
| 61 | mounted() { | ||
| 62 | this.queryList() | ||
| 63 | }, | ||
| 64 | methods: { | ||
| 65 | queryList(){ | ||
| 66 | getUserCommonOpinion(this.pageData).then(res => { | ||
| 67 | let { total, records } = res.result | ||
| 68 | this.tableData.total = total; | ||
| 69 | this.tableData.data = records ? records : [] | ||
| 70 | }) | ||
| 71 | }, | ||
| 72 | //新增常用意见 | ||
| 73 | addOpinion(){ | ||
| 74 | addUserCommonOpinion({commonOpinion: this.commonOpinion}).then(res => { | ||
| 75 | if(res.code == 200){ | ||
| 76 | this.closeaddDiglog(); | ||
| 77 | this.queryList() | ||
| 78 | }else{ | ||
| 79 | this.$message.error(res.message) | ||
| 80 | } | ||
| 81 | }) | ||
| 82 | }, | ||
| 83 | //打开新增弹窗 | ||
| 84 | openDialog() { | ||
| 85 | this.addDialog = true | ||
| 86 | }, | ||
| 87 | //关闭新增弹窗 | ||
| 88 | closeaddDiglog() { | ||
| 89 | this.addDialog = false; | ||
| 90 | this.commonOpinion = ""; | ||
| 91 | }, | ||
| 92 | //使用常用意见 | ||
| 93 | useCommonOpinion(item){ | ||
| 94 | this.$parent.useOpinion(item.opinion); | ||
| 95 | this.$emit("input", false); | ||
| 96 | }, | ||
| 97 | //关闭列表弹窗 | ||
| 98 | closeDialog () { | ||
| 99 | this.$emit("input", false); | ||
| 100 | this.commonOpinion = ""; | ||
| 101 | } | ||
| 102 | } | ||
| 103 | } | ||
| 104 | </script> | ||
| 105 | <style scoped lang='scss'> | ||
| 106 | .invalid-reson { | ||
| 107 | margin-bottom: 10px; | ||
| 108 | } | ||
| 109 | .dialog-footer { | ||
| 110 | margin-top: 10px; | ||
| 111 | display: flex; | ||
| 112 | justify-content: flex-end; | ||
| 113 | } | ||
| 114 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -14,17 +14,11 @@ | ... | @@ -14,17 +14,11 @@ |
| 14 | <el-row> | 14 | <el-row> |
| 15 | <el-col :span="24"> | 15 | <el-col :span="24"> |
| 16 | <el-form-item label-width="0" class="opinion_item" prop="shyj"> | 16 | <el-form-item label-width="0" class="opinion_item" prop="shyj"> |
| 17 | <el-input type="textarea" :rows="4" class="opinion" placeholder="请输入审批意见" v-if="item.stepShjy == '1'" | 17 | <el-input type="textarea" :rows="4" class="opinion" placeholder="请输入审批意见" v-if="item.stepShjy == '1' && ableOperation" |
| 18 | v-model="ruleForm.shyj"></el-input> | 18 | v-model="ruleForm.shyj"></el-input> |
| 19 | <el-input type="textarea" :rows="4" class="opinion" v-model="item.shyj" v-else :disabled="true"> | 19 | <el-input type="textarea" :rows="4" class="opinion" v-model="item.shyj" v-else :disabled="true"> |
| 20 | </el-input> | 20 | </el-input> |
| 21 | <el-popover placement="right" width="50" trigger="hover" v-if="item.stepShjy == '1'"> | 21 | <el-button class="opinion_btn" @click="commonOpinion" v-if="item.stepShjy == '1' && ableOperation">常用意见</el-button> |
| 22 | <ul class="pointer"> | ||
| 23 | <li @click="handleClick">复审</li> | ||
| 24 | <li>初审意见</li> | ||
| 25 | </ul> | ||
| 26 | <el-button class="opinion_btn" slot="reference">常用意见</el-button> | ||
| 27 | </el-popover> | ||
| 28 | </el-form-item> | 22 | </el-form-item> |
| 29 | </el-col> | 23 | </el-col> |
| 30 | </el-row> | 24 | </el-row> |
| ... | @@ -42,32 +36,35 @@ | ... | @@ -42,32 +36,35 @@ |
| 42 | </el-row> | 36 | </el-row> |
| 43 | </div> | 37 | </div> |
| 44 | </div> | 38 | </div> |
| 45 | <div class="submit_button" v-if="!$route.query.viewtype"> | 39 | <div class="submit_button" v-if="ableOperation"> |
| 46 | <el-button type="primary" v-if="tableData.length>0" @click="onSubmit">保存</el-button> | 40 | <el-button type="primary" @click="onSubmit">保存</el-button> |
| 47 | </div> | 41 | </div> |
| 48 | </el-form> | 42 | </el-form> |
| 49 | <el-empty v-if="tableData.length==0" description="暂无数据"></el-empty> | 43 | <el-empty v-if="tableData.length==0" description="暂无数据"></el-empty> |
| 44 | <commonDialog v-model="commonDialog" /> | ||
| 50 | </div> | 45 | </div> |
| 51 | </template> | 46 | </template> |
| 52 | <script> | 47 | <script> |
| 53 | import { getSpyjList, saveSpyj, saveSpyjBySlsq } from "@/api/fqsq.js"; | 48 | import { getSpyjList, saveSpyj, saveSpyjBySlsq } from "@/api/fqsq.js"; |
| 49 | import { popupDialog } from "@/utils/popup.js"; | ||
| 50 | import commonDialog from "./commonOpinion.vue"; | ||
| 51 | import { mapGetters } from 'vuex' | ||
| 54 | export default { | 52 | export default { |
| 55 | components: {}, | 53 | components: {commonDialog}, |
| 56 | props: { | 54 | props: { |
| 57 | }, | 55 | }, |
| 56 | computed: { | ||
| 57 | ...mapGetters([ 'userData']) | ||
| 58 | }, | ||
| 58 | data () { | 59 | data () { |
| 59 | return { | 60 | return { |
| 60 | bsmSlsq: '', | 61 | bsmSlsq: '', |
| 61 | //刷新值 | 62 | //刷新值 |
| 62 | refresh : 10, | 63 | refresh : 10, |
| 63 | bestepid: '', | 64 | ableOperation: true, |
| 64 | ruleForm: { | 65 | bsmSlsq: this.$route.query.bsmSlsq, |
| 65 | shyj: '', | 66 | bestepid: this.$route.query.bestepid, |
| 66 | bsmSlsq: this.$route.query.bsmSlsq, | 67 | ruleForm: {}, |
| 67 | stepid: this.$route.query.bestepid, | ||
| 68 | shryxm: '', | ||
| 69 | shjssj: '', | ||
| 70 | }, | ||
| 71 | rules: { | 68 | rules: { |
| 72 | shyj: [ | 69 | shyj: [ |
| 73 | { required: true, message: '请输入审批意见', trigger: 'blur' } | 70 | { required: true, message: '请输入审批意见', trigger: 'blur' } |
| ... | @@ -75,10 +72,14 @@ export default { | ... | @@ -75,10 +72,14 @@ export default { |
| 75 | }, | 72 | }, |
| 76 | tableData: [], | 73 | tableData: [], |
| 77 | propsParam: {}, | 74 | propsParam: {}, |
| 75 | commonDialog: false | ||
| 78 | } | 76 | } |
| 79 | }, | 77 | }, |
| 80 | created () { | 78 | created () { |
| 81 | this.propsParam = this.$attrs; | 79 | this.propsParam = this.$attrs; |
| 80 | if(this.$route.query.viewtype){ | ||
| 81 | this.ableOperation = false | ||
| 82 | } | ||
| 82 | this.list(); | 83 | this.list(); |
| 83 | }, | 84 | }, |
| 84 | methods: { | 85 | methods: { |
| ... | @@ -90,24 +91,33 @@ export default { | ... | @@ -90,24 +91,33 @@ export default { |
| 90 | var formdata = new FormData(); | 91 | var formdata = new FormData(); |
| 91 | formdata.append("bsmBusiness", this.propsParam.bsmBusiness); | 92 | formdata.append("bsmBusiness", this.propsParam.bsmBusiness); |
| 92 | formdata.append("bestepid", this.$route.query.bestepid); | 93 | formdata.append("bestepid", this.$route.query.bestepid); |
| 94 | formdata.append("ableOperation",this.ableOperation) | ||
| 93 | getSpyjList(formdata).then((res) => { | 95 | getSpyjList(formdata).then((res) => { |
| 94 | if (res.code === 200 && res.result) { | 96 | if (res.code === 200 && res.result) { |
| 95 | this.tableData = res.result | 97 | this.tableData = res.result |
| 96 | this.ruleForm.shyj = res.result[res.result.length - 1].shyj | 98 | this.ruleForm = res.result[res.result.length - 1] |
| 97 | } | 99 | } |
| 98 | }) | 100 | }) |
| 99 | }, | 101 | }, |
| 100 | onSubmit () { | 102 | onSubmit () { |
| 103 | this.ruleForm.bsmSlsq = this.bsmSlsq | ||
| 104 | this.ruleForm.bestepid = this.bestepid | ||
| 101 | saveSpyjBySlsq(this.ruleForm).then(res => { | 105 | saveSpyjBySlsq(this.ruleForm).then(res => { |
| 102 | if (res.code === 200) { | 106 | if (res.code === 200) { |
| 103 | this.$message.success("保存成功") | 107 | this.$message.success("保存成功") |
| 104 | this.refresh += 1 | 108 | this.refresh += 1 |
| 105 | this.tableData[this.tableData.length - 1].shryxm = res.result.shryxm | ||
| 106 | this.tableData[this.tableData.length - 1].shjssj = res.result.shjssj | ||
| 107 | } else { | 109 | } else { |
| 108 | this.$message.error(res.message) | 110 | this.$message.error(res.message) |
| 109 | } | 111 | } |
| 110 | }) | 112 | }) |
| 113 | }, | ||
| 114 | //打开常用意见列表弹窗 | ||
| 115 | commonOpinion(){ | ||
| 116 | this.commonDialog = true | ||
| 117 | }, | ||
| 118 | //使用常用意见 | ||
| 119 | useOpinion(opinion){ | ||
| 120 | this.ruleForm.shyj = opinion | ||
| 111 | } | 121 | } |
| 112 | } | 122 | } |
| 113 | } | 123 | } | ... | ... |
| ... | @@ -4,37 +4,14 @@ | ... | @@ -4,37 +4,14 @@ |
| 4 | <el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length > 1"> | 4 | <el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length > 1"> |
| 5 | <el-tab-pane :label="item.qlr + '(' + item.bdcqzh + ')'" :name="item.bsmBdcqz" v-for="(item,index) in headTabBdcqz" :key="index"></el-tab-pane> | 5 | <el-tab-pane :label="item.qlr + '(' + item.bdcqzh + ')'" :name="item.bsmBdcqz" v-for="(item,index) in headTabBdcqz" :key="index"></el-tab-pane> |
| 6 | </el-tabs> | 6 | </el-tabs> |
| 7 | <div class="aaaa">{{bdcqz.bdcqzlx == '1' ? '不动产权证书' : '不动产权证明'}}</div> | 7 | <div class="zsyl-title">{{bdcqz.bdcqzlx == '1' ? '不动产权证书' : '不动产权证明'}}</div> |
| 8 | <div class="zsyl-box"> | 8 | <img :src="previewImage"> |
| 9 | <div class="zsyl-left"> | ||
| 10 | <div class="zsyl-title"> | ||
| 11 | <span v-if="bdcqz.bdcqzh">{{bdcqz.bdcqzh}}</span> | ||
| 12 | <span v-else>____( )________不动产权第 号</span> | ||
| 13 | </div> | ||
| 14 | <table class="table-column"> | ||
| 15 | <tr v-for="(item, colindex) in columns" :key="colindex"> | ||
| 16 | <td> | ||
| 17 | <span>{{ item.label }}</span> | ||
| 18 | </td> | ||
| 19 | <td> | ||
| 20 | <span> | ||
| 21 | {{ getRowValue(item.prop) }} | ||
| 22 | </span> | ||
| 23 | </td> | ||
| 24 | </tr> | ||
| 25 | </table> | ||
| 26 | </div> | ||
| 27 | <div class="zsyl-right"> | ||
| 28 | <div class="zsyl-title">附记</div> | ||
| 29 | <div class="zsyl-text">{{bdcqz.fj}}</div> | ||
| 30 | </div> | ||
| 31 | </div> | ||
| 32 | </div> | 9 | </div> |
| 33 | </template> | 10 | </template> |
| 34 | 11 | ||
| 35 | <script> | 12 | <script> |
| 36 | import { datas } from "../javascript/zsyl.js"; | 13 | import { datas } from "../javascript/zsyl.js"; |
| 37 | import { getSlsqBdcqzList} from "@/api/bdcqz.js" | 14 | import { getSlsqBdcqzList,bdcqzPreview} from "@/api/bdcqz.js" |
| 38 | export default { | 15 | export default { |
| 39 | components: { | 16 | components: { |
| 40 | }, | 17 | }, |
| ... | @@ -58,6 +35,8 @@ export default { | ... | @@ -58,6 +35,8 @@ export default { |
| 58 | headTabBdcqz: [], | 35 | headTabBdcqz: [], |
| 59 | //tab选择绑定值 | 36 | //tab选择绑定值 |
| 60 | activeName: '', | 37 | activeName: '', |
| 38 | //证书图片预览 | ||
| 39 | previewImage: '', | ||
| 61 | ruleForm: { | 40 | ruleForm: { |
| 62 | bsmBdcqz: '', | 41 | bsmBdcqz: '', |
| 63 | szmc: '不动产权证书', | 42 | szmc: '不动产权证书', |
| ... | @@ -89,11 +68,12 @@ export default { | ... | @@ -89,11 +68,12 @@ export default { |
| 89 | getHeadTabBdcqz(){ | 68 | getHeadTabBdcqz(){ |
| 90 | getSlsqBdcqzList({bsmSlsq: this.formData.bsmSlsq}).then(res => { | 69 | getSlsqBdcqzList({bsmSlsq: this.formData.bsmSlsq}).then(res => { |
| 91 | if(res.code == 200){ | 70 | if(res.code == 200){ |
| 92 | if(res.result){ | 71 | if(res.result && res.result.length > 0){ |
| 93 | this.activeName = res.result[0].bsmBdcqz | 72 | this.activeName = res.result[0].bsmBdcqz |
| 94 | this.bdcqz = res.result[0] | 73 | this.bdcqz = res.result[0] |
| 74 | this.headTabBdcqz = res.result | ||
| 75 | this.getBdcqzPreview(); | ||
| 95 | } | 76 | } |
| 96 | this.headTabBdcqz = res.result | ||
| 97 | } | 77 | } |
| 98 | 78 | ||
| 99 | }) | 79 | }) |
| ... | @@ -102,43 +82,20 @@ export default { | ... | @@ -102,43 +82,20 @@ export default { |
| 102 | handleClick(e){ | 82 | handleClick(e){ |
| 103 | this.bdcqz = this.headTabBdcqz[e.index - 0] | 83 | this.bdcqz = this.headTabBdcqz[e.index - 0] |
| 104 | this.activeName = this.headTabBdcqz.bsmBdcqz | 84 | this.activeName = this.headTabBdcqz.bsmBdcqz |
| 105 | } | 85 | this.getBdcqzPreview(); |
| 86 | }, | ||
| 87 | getBdcqzPreview(){ | ||
| 88 | bdcqzPreview(this.bdcqz).then(res => { | ||
| 89 | let blob = new Blob([res]); | ||
| 90 | let url = window.URL.createObjectURL(blob); | ||
| 91 | this.previewImage = url; | ||
| 92 | }) | ||
| 93 | }, | ||
| 106 | } | 94 | } |
| 107 | } | 95 | } |
| 108 | </script> | 96 | </script> |
| 109 | <style scoped lang="scss"> | 97 | <style scoped lang="scss"> |
| 110 | @import "~@/styles/mixin.scss"; | 98 | @import "~@/styles/mixin.scss"; |
| 111 | .zsyl-box{ | ||
| 112 | display: flex; | ||
| 113 | justify-content: space-between; | ||
| 114 | padding: 20px; | ||
| 115 | background: #FAFBE5; | ||
| 116 | .zsyl-left{ | ||
| 117 | width: 330px; | ||
| 118 | .zsyl-title{ | ||
| 119 | font-size: 18px; | ||
| 120 | text-align: center; | ||
| 121 | } | ||
| 122 | } | ||
| 123 | .zsyl-right{ | ||
| 124 | width: 330px; | ||
| 125 | .zsyl-title{ | ||
| 126 | letter-spacing: 50px; | ||
| 127 | text-align: center; | ||
| 128 | text-indent: 50px; | ||
| 129 | } | ||
| 130 | .zsyl-text{ | ||
| 131 | border: 1px solid #ccc; | ||
| 132 | height: 90%; | ||
| 133 | } | ||
| 134 | } | ||
| 135 | .zsyl-title{ | ||
| 136 | margin-bottom: 12px; | ||
| 137 | } | ||
| 138 | /deep/.el-table__row{ | ||
| 139 | background: #FAFBE5!important; | ||
| 140 | } | ||
| 141 | } | ||
| 142 | .middle_padding { | 99 | .middle_padding { |
| 143 | padding-bottom: 10px; | 100 | padding-bottom: 10px; |
| 144 | } | 101 | } |
| ... | @@ -166,10 +123,10 @@ export default { | ... | @@ -166,10 +123,10 @@ export default { |
| 166 | background: rgb(251,249,229); | 123 | background: rgb(251,249,229); |
| 167 | } | 124 | } |
| 168 | } | 125 | } |
| 169 | .aaaa{ | 126 | .zsyl-title{ |
| 170 | background: #FAFBE5; | 127 | background: #FAFBE5; |
| 171 | text-align: center; | 128 | text-align: center; |
| 172 | padding-top: 10px; | 129 | padding: 5px 0px; |
| 173 | font-size: 20px; | 130 | font-size: 20px; |
| 174 | } | 131 | } |
| 175 | </style> | 132 | </style> | ... | ... |
| ... | @@ -127,7 +127,7 @@ export default { | ... | @@ -127,7 +127,7 @@ export default { |
| 127 | popupDialog("证书预览", "workflow/components/zsyl", { | 127 | popupDialog("证书预览", "workflow/components/zsyl", { |
| 128 | bsmSlsq: this.bsmSlsq, | 128 | bsmSlsq: this.bsmSlsq, |
| 129 | entryType: '1' | 129 | entryType: '1' |
| 130 | }, '800px') | 130 | }, '1070px') |
| 131 | break; | 131 | break; |
| 132 | case "B7": | 132 | case "B7": |
| 133 | this.$popup("证书领取", "workflow/components/zslq", { | 133 | this.$popup("证书领取", "workflow/components/zslq", { | ... | ... |
| ... | @@ -289,8 +289,8 @@ export default { | ... | @@ -289,8 +289,8 @@ export default { |
| 289 | break; | 289 | break; |
| 290 | case "B5": | 290 | case "B5": |
| 291 | this.$popup("证书预览", "workflow/components/zsyl", { | 291 | this.$popup("证书预览", "workflow/components/zsyl", { |
| 292 | height: "600px", | 292 | height: "850px", |
| 293 | width: "800px", | 293 | width: "1070px", |
| 294 | formData: { | 294 | formData: { |
| 295 | bsmSlsq: this.bsmSlsq, | 295 | bsmSlsq: this.bsmSlsq, |
| 296 | entryType: '1' | 296 | entryType: '1' | ... | ... |
-
Please register or sign in to post a comment