|
@@ -4,8 +4,8 @@
|
|
|
<div id="html" class="html" ref="html" v-html="html" @click="selectClick"></div>
|
|
|
</div>
|
|
|
<div class="hui-dialog-submit">
|
|
|
- <el-button size="medium" type="primary" @click="submit">保 存</el-button>
|
|
|
<el-button size="medium" @click="$emit('close')">取 消</el-button>
|
|
|
+ <el-button size="medium" type="primary" @click="submit">保 存</el-button>
|
|
|
</div>
|
|
|
<el-dialog title="选择日期" :visible.sync="timeDialog" :append-to-body="true" width="500px">
|
|
|
<div class="hui-flex">
|
|
@@ -33,16 +33,21 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <el-dialog title="选择公章" :visible.sync="dialogVisibles" width="880px" :append-to-body="true">
|
|
|
- <div class="no-tips" v-if="sealData.length == 0">暂未添加公章</div>
|
|
|
- <el-radio v-else v-model="sealVal" v-for="item in sealData" :key="item.id" :label="item.id" border
|
|
|
- style="margin: 10px;">{{ item.name }}</el-radio>
|
|
|
- <div class="dialog-footer">
|
|
|
- <el-button @click="dialogVisibles = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="selectSeal">确 定</el-button>
|
|
|
+ <el-dialog title="选择公章" :visible.sync="dialogVisibles" width="600px" :append-to-body="true">
|
|
|
+ <div class="hui-flex hui-dialog">
|
|
|
+ <div class="hui-flex-box hui-dialog-content">
|
|
|
+ <div class="no-tips" v-if="sealData.length == 0">暂未添加公章</div>
|
|
|
+ <el-radio v-else v-model="sealVal" v-for="item in sealData" :key="item.id" :label="item.id" border
|
|
|
+ style="margin: 10px;">
|
|
|
+ {{ item.name }}
|
|
|
+ </el-radio>
|
|
|
+ </div>
|
|
|
+ <div class="hui-dialog-submit">
|
|
|
+ <el-button size="medium" @click="dialogVisibles = false">取 消</el-button>
|
|
|
+ <el-button size="medium" type="primary" @click="selectSeal">确 定</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <!-- <verify-qr ref="verifyQr"></verify-qr> -->
|
|
|
<el-upload ref="upload" :action="action" name="uploadFile" style="position: absolute;z-index: -1;opacity: 0;"
|
|
|
:headers="headers" :on-success="successFile" :show-file-list="false">
|
|
|
<el-button slot="trigger" size="small" type="primary" ref="imgUpload">上传文件</el-button>
|
|
@@ -70,9 +75,6 @@
|
|
|
constData
|
|
|
} from '@/uitls/index.js';
|
|
|
// import verifyQr from '@/components/verifyQr';
|
|
|
- import {
|
|
|
- getUserInfo
|
|
|
- } from '@/httpApi/loginRegister';
|
|
|
export default {
|
|
|
props: ['documentId', 'templateId'],
|
|
|
data() {
|
|
@@ -115,7 +117,6 @@
|
|
|
this.$nextTick(() => {
|
|
|
this.userInfo = this.$store.getters.user;
|
|
|
this.contextData = this.$store.getters.document;
|
|
|
- console.log(this.contextData);
|
|
|
if (this.templateId) return this.initTemplate(this.templateId, [], []);
|
|
|
if (this.documentId) this.initDocument();
|
|
|
})
|
|
@@ -169,23 +170,35 @@
|
|
|
renderTamplate(elementDataList, sealUsageList) {
|
|
|
//整合模板
|
|
|
this.$nextTick(() => {
|
|
|
- if (elementDataList.length === 0) {
|
|
|
- let documentElement = $('.documentElement');
|
|
|
- for (let i = 0; i < documentElement.length; i++) {
|
|
|
- let elem = documentElement[i];
|
|
|
- let inputtype = $(elem).attr('inputtype') == undefined ? '' : $(elem).attr(
|
|
|
- 'inputtype');
|
|
|
- this.domRender(inputtype, elem, elem.id);
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.renderDocument(elementDataList);
|
|
|
+ let documentElement = $('.documentElement');
|
|
|
+ if (elementDataList.length > 0) this.renderDocument(elementDataList);
|
|
|
+ for (let i = 0; i < documentElement.length; i++) {
|
|
|
+ let elem = documentElement[i];
|
|
|
+ let inputtype = $(elem).attr('inputtype') == undefined ? '' : $(elem).attr(
|
|
|
+ 'inputtype');
|
|
|
+ let updatetype = inputtype.replace('@', '');
|
|
|
+ $(elem).attr('updatetype', updatetype);
|
|
|
+ this.domRender(updatetype, elem, elem.id);
|
|
|
}
|
|
|
+ if (sealUsageList) this.filterSeal(sealUsageList);
|
|
|
+ //申请印章
|
|
|
+ let _self = this;
|
|
|
+ $('.sureSeal').click(function() {
|
|
|
+ let _this = this;
|
|
|
+ _self.sealDomId = $(_this).parent()[0].id;
|
|
|
+ getSealList(_self.$store.getters.organization.id).then(res => {
|
|
|
+ if (res.state) {
|
|
|
+ _self.sealData = res.data;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ _self.dialogVisibles = true;
|
|
|
+ });
|
|
|
});
|
|
|
},
|
|
|
domRender(type, elem, id) {
|
|
|
- elem.innerHTML = '';
|
|
|
switch (type) {
|
|
|
case 'context':
|
|
|
+ if (elem.innerHTML) return;
|
|
|
$(elem).text(this.contextData[id] || '')
|
|
|
break;
|
|
|
case 'sign':
|
|
@@ -193,7 +206,7 @@
|
|
|
'<button class="sureAutograph el-button el-button--default el-button--medium">确认签名</button>';
|
|
|
break;
|
|
|
case 'seal':
|
|
|
- elem.innerHTML = '<div class="sureSeal"">申请印章</div>';
|
|
|
+ elem.innerHTML = '<span class="sureSeal"">申请盖章</span>';
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -202,10 +215,8 @@
|
|
|
renderDocument(data) {
|
|
|
data.forEach(item => {
|
|
|
let dataItem = JSON.parse(item.data);
|
|
|
- console.log(dataItem);
|
|
|
for (let i in dataItem) {
|
|
|
for (let j in dataItem[i]) {
|
|
|
- console.log(i, j, dataItem[i][j]);
|
|
|
this.renderDom(i, j, dataItem[i][j]);
|
|
|
}
|
|
|
}
|
|
@@ -215,7 +226,7 @@
|
|
|
switch (i) {
|
|
|
case 'seal':
|
|
|
if (text == '') return;
|
|
|
- $('#' + j)[0].className = '';
|
|
|
+ $('#' + j).addClass('seal-box');
|
|
|
$('#' + j).html('已申请印章,请等待审核');
|
|
|
break;
|
|
|
case 'sealperson':
|
|
@@ -236,99 +247,22 @@
|
|
|
break;
|
|
|
}
|
|
|
},
|
|
|
- updateRenderDom(i, j, text) {
|
|
|
- let _self = this,
|
|
|
- oldI = i;
|
|
|
- i = i.indexOf('select_') > -1 ? i.split('_')[0] : i;
|
|
|
- switch (i) {
|
|
|
- case 'input':
|
|
|
- $('#' + j + '[name="' + i + '"]')
|
|
|
- .attr('contenteditable', true)
|
|
|
- .attr('class', 'documentElement inputElement')
|
|
|
- .html(text);
|
|
|
- _self.submitShow = true;
|
|
|
- break;
|
|
|
- case 'select':
|
|
|
- if ($('#' + j + '[name="' + oldI + '"]').hasClass('documentElement')) {
|
|
|
- $('#' + j + '[name="' + oldI + '"]').text(text);
|
|
|
- break;
|
|
|
- }
|
|
|
- let keys = oldI.split('.')[0].split('_')[1],
|
|
|
- html = '<div class="documentElement" id="' + j + '" name="' + oldI +
|
|
|
- '" contenteditable="true">' + text + '</div>';
|
|
|
- $('#' + j + '[name="' + oldI + '"]')
|
|
|
- .attr('id', '')
|
|
|
- .attr('class', 'selectElement')
|
|
|
- .html(html + '<i id="' + keys + '" class="el-icon-arrow-down"></i>');
|
|
|
- _self.changeSelect.push(keys);
|
|
|
- _self.submitShow = true;
|
|
|
- break;
|
|
|
- case 'context':
|
|
|
- $('#' + j + '[name="' + i + '"]')
|
|
|
- .attr('contenteditable', true)
|
|
|
- .attr('class', 'documentElement contextElement')
|
|
|
- .html(text);
|
|
|
- break;
|
|
|
- case 'seal':
|
|
|
- $('#' + j)[0].className = '';
|
|
|
- $('#' + j).html('已申请印章,请等待审核');
|
|
|
- break;
|
|
|
- case 'sealperson':
|
|
|
- if (text != '') $('#' + j).html('<img class="autograph" src="' + text + '">');
|
|
|
- break;
|
|
|
- case 'sign':
|
|
|
- if (text != '') $('#' + j).html('<img class="autograph" src="' + text + '">');
|
|
|
- break;
|
|
|
- case 'signQR':
|
|
|
- if (text != '') $('#' + j).html('<img class="autograph" src="' + text + '">');
|
|
|
- break;
|
|
|
- case 'dateTime':
|
|
|
- if ($('#' + j + '[name="' + oldI + '"]').hasClass('documentElement')) {
|
|
|
- $('#' + j + '[name="' + oldI + '"]').text(text);
|
|
|
- break;
|
|
|
- }
|
|
|
- let timehtml = '<div class="documentElement" id="' + j + '" name="' + oldI +
|
|
|
- '"contenteditable="true">' + text + '</div>';
|
|
|
- $('#' + j + '[name="' + oldI + '"]')
|
|
|
- .attr('id', '')
|
|
|
- .attr('class', 'dateTimeElement')
|
|
|
- .html(timehtml + '<i class="el-icon-date"></i>');
|
|
|
- _self.submitShow = true;
|
|
|
- break;
|
|
|
- case 'checkbox':
|
|
|
- $('#' + j + '[name="' + i + '"]')
|
|
|
- .attr('class', 'documentElement checkboxElement')
|
|
|
- .html(text);
|
|
|
- _self.submitShow = true;
|
|
|
- break;
|
|
|
- case 'copyImage':
|
|
|
- if (text != '') {
|
|
|
- $('#' + j)[0].className = 'documentElement copyImageElement';
|
|
|
- $('#' + j).html('<img class="copyImage" src="' + text + '">');
|
|
|
- }
|
|
|
- _self.submitShow = true;
|
|
|
- break;
|
|
|
- default:
|
|
|
- $('#' + j + '[name="' + i + '"]').html(text);
|
|
|
- break;
|
|
|
- }
|
|
|
- },
|
|
|
filterSeal(data) {
|
|
|
//渲染印章
|
|
|
let _self = this;
|
|
|
- if (_self.platformType == '1') return;
|
|
|
data.forEach((item, index) => {
|
|
|
getRequestSealDetail(item.requestId).then(node => {
|
|
|
- if (node.code == '200') {
|
|
|
+ if (node.state) {
|
|
|
let data = node.data;
|
|
|
if (data.status == 1) {
|
|
|
$('#' + data.keyWord).css('position',
|
|
|
'relative');
|
|
|
getSealDetailById(data.sealId).then(item => {
|
|
|
- if (item.code == '200') $('#' + data
|
|
|
- .keyWord).html('<img id="' + data
|
|
|
- .keyWord + '" class="seal-img" src="' +
|
|
|
- item.data.fileNode.node.url + '"/>');
|
|
|
+ if (item.state) {
|
|
|
+ $('#' + data.keyWord).html('<img id="' + data.keyWord +
|
|
|
+ '" class="seal-img" src="' + item.data.fileNode
|
|
|
+ .node.url + '"/>');
|
|
|
+ }
|
|
|
})
|
|
|
}
|
|
|
}
|
|
@@ -371,25 +305,34 @@
|
|
|
//选择印章
|
|
|
let _self = this;
|
|
|
if (_self.sealDomId == '') return;
|
|
|
- _self.$refs.verifyQr.createVerifyQr('seal', null, function() {
|
|
|
- let item = _self.sealData.filter(item => {
|
|
|
- return item.id == _self.sealVal;
|
|
|
- })[0];
|
|
|
- requestSeal({
|
|
|
- sealId: item.id,
|
|
|
- requestUserName: _self.userInfo.name,
|
|
|
- requestUserId: _self.userInfo.userId,
|
|
|
- documentId: _self.documentId,
|
|
|
- keyWord: _self.sealDomId,
|
|
|
- projectId: _self.$store.getters.project.id
|
|
|
- }).then(data => {
|
|
|
- if (data.state) {
|
|
|
- $('#' + _self.sealDomId).css('position', 'relative');
|
|
|
- $('#' + _self.sealDomId).html('<img id="' + _self.sealDomId +
|
|
|
- '" class="seal-img" src="' + item.fileNode.node.url + '"/>');
|
|
|
- _self.dialogVisibles = false;
|
|
|
- }
|
|
|
- });
|
|
|
+ let item = _self.sealData.filter(item => {
|
|
|
+ return item.id == _self.sealVal;
|
|
|
+ })[0];
|
|
|
+ requestSeal({
|
|
|
+ sealId: item.id,
|
|
|
+ requestUserName: _self.userInfo.name,
|
|
|
+ requestUserId: _self.userInfo.userId,
|
|
|
+ documentId: _self.documentId,
|
|
|
+ keyWord: _self.sealDomId,
|
|
|
+ projectId: _self.$store.getters.project.id
|
|
|
+ }).then(data => {
|
|
|
+ if (data.state) {
|
|
|
+ $('#' + _self.sealDomId).css('position', 'relative');
|
|
|
+ $('#' + _self.sealDomId).html('<img id="' + _self.sealDomId +
|
|
|
+ '" class="seal-img" src="' + item.fileNode.node.url + '"/>');
|
|
|
+ let documentElement = $('.documentElement');
|
|
|
+ let obj = constData(documentElement);
|
|
|
+ insertDocumentData({
|
|
|
+ data: JSON.stringify(obj),
|
|
|
+ documentId: _self.documentId,
|
|
|
+ userId: _self.$store.getters.user.userId
|
|
|
+ }).then(res => {
|
|
|
+ if (res.state) {
|
|
|
+ _self.$message.success('申请成功');
|
|
|
+ _self.dialogVisibles = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
submit() {
|
|
@@ -429,5 +372,36 @@
|
|
|
margin: 0 auto;
|
|
|
width: 900px;
|
|
|
}
|
|
|
+
|
|
|
+ .sureSeal {
|
|
|
+ position: relative;
|
|
|
+ z-index: 999;
|
|
|
+ padding: 5px 10px;
|
|
|
+ text-align: center;
|
|
|
+ background: rgba(97, 133, 214, 0);
|
|
|
+ border-radius: 2px;
|
|
|
+ border: 1px solid #ACADB3;
|
|
|
+ cursor: pointer;
|
|
|
+ color: #000;
|
|
|
+ font-size: 14px;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .seal-box {
|
|
|
+ color: $--color-red;
|
|
|
+ font-size: 14px;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .seal-img {
|
|
|
+ position: absolute;
|
|
|
+ width: 120px;
|
|
|
+ height: 120px;
|
|
|
+ z-index: 998;
|
|
|
+ top: 50%;
|
|
|
+ margin-top: -60px;
|
|
|
+ left: 50%;
|
|
|
+ margin-left: -60px;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|