| @@ -13,8 +13,8 @@ module.exports = { | |||
| "/api": { | |||
| // 请求的目标主机 | |||
| //target: 'http://116.255.223.226:8081/nsgk_test/', | |||
| //target: 'http://localhost:8080/', | |||
| target: 'http://192.168.0.107:8080/', | |||
| target: 'http://localhost:8080/', | |||
| //target: 'http://192.168.0.107:8080/', | |||
| changeOrigin: true, | |||
| pathRewrite: { | |||
| '^/api': '' | |||
| @@ -1660,7 +1660,6 @@ | |||
| "version": "1.0.2", | |||
| "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", | |||
| "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", | |||
| "dev": true, | |||
| "requires": { | |||
| "function-bind": "^1.1.1", | |||
| "get-intrinsic": "^1.0.2" | |||
| @@ -3315,7 +3314,6 @@ | |||
| "version": "1.1.1", | |||
| "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1606860101281&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz", | |||
| "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", | |||
| "dev": true, | |||
| "requires": { | |||
| "is-arguments": "^1.0.4", | |||
| "is-date-object": "^1.0.1", | |||
| @@ -3334,7 +3332,6 @@ | |||
| "version": "1.1.3", | |||
| "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", | |||
| "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", | |||
| "dev": true, | |||
| "requires": { | |||
| "object-keys": "^1.0.12" | |||
| } | |||
| @@ -4271,6 +4268,11 @@ | |||
| "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", | |||
| "dev": true | |||
| }, | |||
| "fast-diff": { | |||
| "version": "1.1.2", | |||
| "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", | |||
| "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==" | |||
| }, | |||
| "fast-json-stable-stringify": { | |||
| "version": "2.1.0", | |||
| "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", | |||
| @@ -4647,7 +4649,6 @@ | |||
| "version": "1.1.1", | |||
| "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", | |||
| "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", | |||
| "dev": true, | |||
| "requires": { | |||
| "function-bind": "^1.1.1", | |||
| "has": "^1.0.3", | |||
| @@ -4870,8 +4871,7 @@ | |||
| "has-symbols": { | |||
| "version": "1.0.2", | |||
| "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", | |||
| "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", | |||
| "dev": true | |||
| "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" | |||
| }, | |||
| "has-unicode": { | |||
| "version": "2.0.1", | |||
| @@ -5485,7 +5485,6 @@ | |||
| "version": "1.1.0", | |||
| "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.1.0.tgz?cache=0&sync_timestamp=1607117404740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.0.tgz", | |||
| "integrity": "sha1-YjUwMd++4HzrNGVqa95Z7+yujdk=", | |||
| "dev": true, | |||
| "requires": { | |||
| "call-bind": "^1.0.0" | |||
| } | |||
| @@ -5563,8 +5562,7 @@ | |||
| "is-date-object": { | |||
| "version": "1.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", | |||
| "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", | |||
| "dev": true | |||
| "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" | |||
| }, | |||
| "is-descriptor": { | |||
| "version": "0.1.6", | |||
| @@ -5711,7 +5709,6 @@ | |||
| "version": "1.1.2", | |||
| "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", | |||
| "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", | |||
| "dev": true, | |||
| "requires": { | |||
| "call-bind": "^1.0.2", | |||
| "has-symbols": "^1.0.1" | |||
| @@ -7044,7 +7041,6 @@ | |||
| "version": "1.1.5", | |||
| "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz?cache=0&sync_timestamp=1613857744782&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.5.tgz", | |||
| "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=", | |||
| "dev": true, | |||
| "requires": { | |||
| "call-bind": "^1.0.2", | |||
| "define-properties": "^1.1.3" | |||
| @@ -7053,8 +7049,7 @@ | |||
| "object-keys": { | |||
| "version": "1.1.1", | |||
| "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", | |||
| "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", | |||
| "dev": true | |||
| "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" | |||
| }, | |||
| "object-visit": { | |||
| "version": "1.0.1", | |||
| @@ -7339,6 +7334,11 @@ | |||
| "no-case": "^2.2.0" | |||
| } | |||
| }, | |||
| "parchment": { | |||
| "version": "1.1.4", | |||
| "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", | |||
| "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==" | |||
| }, | |||
| "parse-asn1": { | |||
| "version": "5.1.6", | |||
| "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", | |||
| @@ -10137,6 +10137,41 @@ | |||
| "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", | |||
| "dev": true | |||
| }, | |||
| "quill": { | |||
| "version": "1.3.7", | |||
| "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", | |||
| "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", | |||
| "requires": { | |||
| "clone": "^2.1.1", | |||
| "deep-equal": "^1.0.1", | |||
| "eventemitter3": "^2.0.3", | |||
| "extend": "^3.0.2", | |||
| "parchment": "^1.1.4", | |||
| "quill-delta": "^3.6.2" | |||
| }, | |||
| "dependencies": { | |||
| "clone": { | |||
| "version": "2.1.2", | |||
| "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", | |||
| "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" | |||
| }, | |||
| "eventemitter3": { | |||
| "version": "2.0.3", | |||
| "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", | |||
| "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==" | |||
| } | |||
| } | |||
| }, | |||
| "quill-delta": { | |||
| "version": "3.6.3", | |||
| "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", | |||
| "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", | |||
| "requires": { | |||
| "deep-equal": "^1.0.1", | |||
| "extend": "^3.0.2", | |||
| "fast-diff": "1.1.2" | |||
| } | |||
| }, | |||
| "randomatic": { | |||
| "version": "3.1.1", | |||
| "resolved": "https://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz", | |||
| @@ -10424,7 +10459,6 @@ | |||
| "version": "1.3.1", | |||
| "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz?cache=0&sync_timestamp=1610725679574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.1.tgz", | |||
| "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=", | |||
| "dev": true, | |||
| "requires": { | |||
| "call-bind": "^1.0.2", | |||
| "define-properties": "^1.1.3" | |||
| @@ -12410,6 +12444,15 @@ | |||
| } | |||
| } | |||
| }, | |||
| "vue-quill-editor": { | |||
| "version": "3.0.6", | |||
| "resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz", | |||
| "integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==", | |||
| "requires": { | |||
| "object-assign": "^4.1.1", | |||
| "quill": "^1.3.4" | |||
| } | |||
| }, | |||
| "vue-resize-sensor": { | |||
| "version": "2.0.0", | |||
| "resolved": "https://registry.npmjs.org/vue-resize-sensor/-/vue-resize-sensor-2.0.0.tgz", | |||
| @@ -24,6 +24,7 @@ | |||
| "node-sass": "^5.0.0", | |||
| "nprogress": "^0.2.0", | |||
| "postcss-px2rem-exclude": "0.0.6", | |||
| "quill": "^1.3.7", | |||
| "sass": "^1.32.8", | |||
| "sass-loader": "^6.0.6", | |||
| "vant": "^2.12.8", | |||
| @@ -33,6 +34,7 @@ | |||
| "vue-esign": "^1.0.5", | |||
| "vue-pdf": "^4.3.0", | |||
| "vue-qrcode-reader": "^3.1.0", | |||
| "vue-quill-editor": "^3.0.6", | |||
| "vue-router": "^3.0.1", | |||
| "vue-search-tree": "^1.9.9", | |||
| "vuex": "^3.6.2", | |||
| @@ -354,3 +354,54 @@ export function updateTYinnongTransferFoStatus(data) { | |||
| data: data | |||
| }) | |||
| } | |||
| // 查询重大事项申请列表 | |||
| export function listMajorevent(query) { | |||
| return request({ | |||
| url: '/yinnong/majorevent/list', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 新增重大事项申请 | |||
| export function addMajorevent(data) { | |||
| return request({ | |||
| url: '/yinnong/majorevent/add', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 提交审批 | |||
| export function customSubmitMajorevent(id) { | |||
| return request({ | |||
| url: '/yinnong/majorevent/customSubmit/' + id, | |||
| method: 'post' | |||
| }) | |||
| } | |||
| // 查询重大事项申请详细 | |||
| export function getMajorevent(id) { | |||
| return request({ | |||
| url: '/yinnong/majorevent/get/' + id, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| // 修改重大事项申请 | |||
| export function updateMajorevent(data) { | |||
| return request({ | |||
| url: '/yinnong/majorevent/edit', | |||
| method: 'post', | |||
| data: data | |||
| }) | |||
| } | |||
| // 删除重大事项申请 | |||
| export function delMajorevent(id) { | |||
| return request({ | |||
| url: '/yinnong/majorevent/remove/' + id, | |||
| method: 'get' | |||
| }) | |||
| } | |||
| @@ -0,0 +1,292 @@ | |||
| <template> | |||
| <div> | |||
| <div class="editor" ref="editor" :style="styles"> | |||
| </div> | |||
| <!-- 图片上传组件辅助--> | |||
| <vant-upload | |||
| class="avatar-uploader" | |||
| :action="serverUrl" | |||
| :headers="header" | |||
| name="file" | |||
| :show-file-list="false" | |||
| :on-success="uploadSuccess" | |||
| :on-error="uploadError" | |||
| :before-upload="beforeUpload"> | |||
| </vant-upload> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import Quill from "quill"; | |||
| import "quill/dist/quill.core.css"; | |||
| import "quill/dist/quill.snow.css"; | |||
| import "quill/dist/quill.bubble.css"; | |||
| import { addQuillTitle } from './quill-title.js'; | |||
| import { getToken } from '@/utils/auth'; | |||
| const toolbarOptions =[ | |||
| ["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线 | |||
| ["blockquote", "code-block"], // 引用 代码块 | |||
| [{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表 | |||
| [{ indent: "-1" }, { indent: "+1" }], // 缩进 | |||
| [{ size: ["small", false, "large", "huge"] }], // 字体大小 | |||
| [{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题 | |||
| [{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色 | |||
| [{ align: [] }], // 对齐方式 | |||
| ["clean"], // 清除文本格式 | |||
| ["link", "image", "video"] // 链接、图片、视频 | |||
| ] | |||
| export default { | |||
| name: "Editor", | |||
| props: { | |||
| /* 编辑器的内容 */ | |||
| value: { | |||
| type: String, | |||
| default: "", | |||
| }, | |||
| /* 高度 */ | |||
| height: { | |||
| type: Number, | |||
| default: null, | |||
| }, | |||
| // 上传文件大小限制(MB) | |||
| fileSize: { | |||
| type: Number, | |||
| default: 5, | |||
| }, | |||
| /* 类型(base64格式、url格式) */ | |||
| type: { | |||
| type: String, | |||
| default: "url", | |||
| }, | |||
| /* 只读 */ | |||
| readOnly: { | |||
| type: Boolean, | |||
| default: false, | |||
| }, | |||
| /* 最小高度 */ | |||
| minHeight: { | |||
| type: Number, | |||
| default: null, | |||
| }, | |||
| }, | |||
| data() { | |||
| return { | |||
| serverUrl: process.env.VUE_APP_BASE_API + "/common/upload", | |||
| header: {Authorization: "Bearer " + getToken()}, | |||
| Quill: null, | |||
| quillUpdateImg: false, | |||
| currentValue: "", | |||
| options: { | |||
| theme: "snow", | |||
| bounds: document.body, | |||
| debug: "warn", | |||
| modules: { | |||
| toolbar: { | |||
| // 工具栏配置 | |||
| container: toolbarOptions, | |||
| handlers: { | |||
| 'image': function (value) { | |||
| if (value) { | |||
| document.querySelector('.avatar-uploader input').click() | |||
| } else { | |||
| this.quill.format('image', false); | |||
| } | |||
| }, | |||
| // 'video': function (value) { | |||
| // if (value) { | |||
| // document.querySelector('.avatar-uploader input').click() | |||
| // } else { | |||
| // this.quill.format('video', false); | |||
| // } | |||
| // }, | |||
| } | |||
| } | |||
| }, | |||
| placeholder: "请输入内容", | |||
| readOnly: this.readOnly, | |||
| }, | |||
| }; | |||
| }, | |||
| computed: { | |||
| styles() { | |||
| let style = {}; | |||
| if (this.minHeight) { | |||
| style.minHeight = `${this.minHeight}px`; | |||
| } | |||
| if (this.height) { | |||
| style.height = `${this.height}px`; | |||
| } | |||
| return style; | |||
| }, | |||
| }, | |||
| watch: { | |||
| value: { | |||
| handler(val) { | |||
| if (val !== this.currentValue) { | |||
| this.currentValue = val === null ? "" : val; | |||
| if (this.Quill) { | |||
| this.Quill.pasteHTML(this.currentValue); | |||
| } | |||
| } | |||
| }, | |||
| immediate: true, | |||
| }, | |||
| }, | |||
| mounted() { | |||
| this.init(); | |||
| }, | |||
| beforeDestroy() { | |||
| this.Quill = null; | |||
| }, | |||
| methods: { | |||
| init() { | |||
| const editor = this.$refs.editor; | |||
| this.Quill = new Quill(editor, this.options); | |||
| this.Quill.pasteHTML(this.currentValue); | |||
| this.Quill.on("text-change", (delta, oldDelta, source) => { | |||
| const html = this.$refs.editor.children[0].innerHTML; | |||
| const text = this.Quill.getText(); | |||
| const quill = this.Quill; | |||
| this.currentValue = html; | |||
| this.$emit("input", html); | |||
| this.$emit("on-change", { html, text, quill }); | |||
| }); | |||
| this.Quill.on("text-change", (delta, oldDelta, source) => { | |||
| this.$emit("on-text-change", delta, oldDelta, source); | |||
| }); | |||
| this.Quill.on("selection-change", (range, oldRange, source) => { | |||
| this.$emit("on-selection-change", range, oldRange, source); | |||
| }); | |||
| this.Quill.on("editor-change", (eventName, ...args) => { | |||
| this.$emit("on-editor-change", eventName, ...args); | |||
| }); | |||
| // 增加编辑器按钮title提示 | |||
| addQuillTitle(); | |||
| }, | |||
| // 上传图片前 | |||
| beforeUpload(file) { | |||
| this.quillUpdateImg = true; | |||
| // 校检文件大小 | |||
| if (this.fileSize) { | |||
| const isLt = file.size / 1024 / 1024 < this.fileSize; | |||
| if (!isLt) { | |||
| this.$message.error(`上传文件大小不能超过 ${this.fileSize} MB!`); | |||
| return false; | |||
| } | |||
| } | |||
| return true; | |||
| }, | |||
| // 上传图片成功 | |||
| uploadSuccess(res, file) { | |||
| // res为图片服务器返回的数据 | |||
| // 获取富文本组件实例 | |||
| let quill = this.Quill | |||
| // 如果上传成功 | |||
| if (res.code == 200 && res.url !== null) { | |||
| // 获取光标所在位置 | |||
| let length = quill.getSelection().index; | |||
| // 插入图片 res.info为服务器返回的图片地址 | |||
| quill.insertEmbed(length, 'image', this.$store.getters.baseRoutingUrl + res.fileName) | |||
| // 调整光标到最后 | |||
| quill.setSelection(length + 1) | |||
| } else { | |||
| this.$message.error(res.msg) | |||
| } | |||
| // loading动画消失 | |||
| this.quillUpdateImg = false | |||
| }, | |||
| // 上传图片失败 | |||
| uploadError(res, file) { | |||
| // loading动画消失 | |||
| this.quillUpdateImg = false | |||
| this.$message.error('图片插入失败') | |||
| } | |||
| }, | |||
| }; | |||
| </script> | |||
| <style> | |||
| .editor, .ql-toolbar { | |||
| white-space: pre-wrap!important; | |||
| line-height: normal !important; | |||
| } | |||
| .quill-img { | |||
| display: none; | |||
| } | |||
| .ql-snow .ql-tooltip[data-mode="link"]::before { | |||
| content: "请输入链接地址:"; | |||
| } | |||
| .ql-snow .ql-tooltip.ql-editing a.ql-action::after { | |||
| border-right: 0px; | |||
| content: "保存"; | |||
| padding-right: 0px; | |||
| } | |||
| .ql-snow .ql-tooltip[data-mode="video"]::before { | |||
| content: "请输入视频地址:"; | |||
| } | |||
| .ql-snow .ql-picker.ql-size .ql-picker-label::before, | |||
| .ql-snow .ql-picker.ql-size .ql-picker-item::before { | |||
| content: "14px"; | |||
| } | |||
| .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before, | |||
| .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before { | |||
| content: "10px"; | |||
| } | |||
| .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before, | |||
| .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before { | |||
| content: "18px"; | |||
| } | |||
| .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before, | |||
| .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before { | |||
| content: "32px"; | |||
| } | |||
| .ql-snow .ql-picker.ql-header .ql-picker-label::before, | |||
| .ql-snow .ql-picker.ql-header .ql-picker-item::before { | |||
| content: "文本"; | |||
| } | |||
| .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, | |||
| .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { | |||
| content: "标题1"; | |||
| } | |||
| .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, | |||
| .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { | |||
| content: "标题2"; | |||
| } | |||
| .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, | |||
| .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { | |||
| content: "标题3"; | |||
| } | |||
| .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, | |||
| .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { | |||
| content: "标题4"; | |||
| } | |||
| .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, | |||
| .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { | |||
| content: "标题5"; | |||
| } | |||
| .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, | |||
| .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { | |||
| content: "标题6"; | |||
| } | |||
| .ql-snow .ql-picker.ql-font .ql-picker-label::before, | |||
| .ql-snow .ql-picker.ql-font .ql-picker-item::before { | |||
| content: "标准字体"; | |||
| } | |||
| .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before, | |||
| .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before { | |||
| content: "衬线字体"; | |||
| } | |||
| .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before, | |||
| .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before { | |||
| content: "等宽字体"; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,57 @@ | |||
| const titleConfig = { | |||
| 'ql-bold':'加粗', | |||
| 'ql-color':'字体颜色', | |||
| 'ql-font':'字体', | |||
| 'ql-code':'插入代码', | |||
| 'ql-italic':'斜体', | |||
| 'ql-link':'添加链接', | |||
| 'ql-background':'背景颜色', | |||
| 'ql-size':'字体大小', | |||
| 'ql-strike':'删除线', | |||
| 'ql-script':'上标/下标', | |||
| 'ql-underline':'下划线', | |||
| 'ql-blockquote':'引用', | |||
| 'ql-header':'标题', | |||
| 'ql-indent':'缩进', | |||
| 'ql-list':'列表', | |||
| 'ql-align':'文本对齐', | |||
| 'ql-direction':'文本方向', | |||
| 'ql-code-block':'代码块', | |||
| 'ql-formula':'公式', | |||
| 'ql-image':'图片', | |||
| 'ql-video':'视频', | |||
| 'ql-clean':'清除字体样式' | |||
| }; | |||
| // 增加编辑器按钮title提示 | |||
| export function addQuillTitle(){ | |||
| const oToolBar = document.querySelector('.ql-toolbar'), | |||
| aButton = oToolBar.querySelectorAll('button'), | |||
| aSelect = oToolBar.querySelectorAll('select'), | |||
| aSpan= oToolBar.querySelectorAll('span'); | |||
| aButton.forEach((item)=>{ | |||
| if(item.className === 'ql-script'){ | |||
| item.value === 'sub' ? item.title = '下标': item.title = '上标'; | |||
| }else if(item.className === 'ql-indent'){ | |||
| item.value === '+1' ? item.title ='向右缩进': item.title ='向左缩进'; | |||
| }else if(item.className === 'ql-list'){ | |||
| item.value==='ordered' ? item.title='有序列表' : item.title='无序列表' | |||
| }else if(item.className === 'ql-header'){ | |||
| item.value === '1' ? item.title = '标题H1': item.title = '标题H2'; | |||
| }else{ | |||
| item.title = titleConfig[item.classList[0]]; | |||
| } | |||
| }); | |||
| aSelect.forEach((item)=>{ | |||
| if(item.className!='ql-color'&&item.className!='ql-background'){ | |||
| item.parentNode.title = titleConfig[item.classList[0]]; | |||
| } | |||
| }); | |||
| aSpan.forEach((item)=>{ | |||
| if(item.classList[0]==='ql-color'){ | |||
| item.title = titleConfig[item.classList[0]]; | |||
| }else if(item.classList[0]==='ql-background'){ | |||
| item.title = titleConfig[item.classList[0]]; | |||
| } | |||
| }); | |||
| } | |||
| @@ -1906,6 +1906,15 @@ export const constantRoutes = [ | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalList3'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approvalList13', | |||
| name: 'approvalList13', | |||
| meta: { | |||
| title: '重大事项', | |||
| hidden: true, | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalList13'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approvalList4', | |||
| name: 'approvalList4', | |||
| @@ -1978,6 +1987,15 @@ export const constantRoutes = [ | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalDetail3'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approvalDetail13', | |||
| name: 'approvalDetail13', | |||
| meta: { | |||
| title: '重大事项', | |||
| hidden: true, | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalDetail13'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approvalDetail4', | |||
| name: 'approvalDetail4', | |||
| @@ -2097,6 +2115,15 @@ export const constantRoutes = [ | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalAdd12'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approvalAdd13', | |||
| name: 'approvalAdd13', | |||
| meta: { | |||
| title: '添加重大事项', | |||
| hidden: true, | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalAdd13'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approval/collectionAdd', | |||
| name: 'approvalCollectionAdd', | |||
| @@ -2188,6 +2215,15 @@ export const constantRoutes = [ | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalModify3'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approvalModify13', | |||
| name: 'approvalModify13', | |||
| meta: { | |||
| title: '修改重大事项', | |||
| hidden: true, | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalModify13'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approvalModify4', | |||
| name: 'approvalModify4', | |||
| @@ -2260,6 +2296,15 @@ export const constantRoutes = [ | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalProcess3'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/approvalProcess13', | |||
| name: 'approvalProcess13', | |||
| meta: { | |||
| title: '审批流程', | |||
| hidden: true, | |||
| }, | |||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalProcess13'], resolve) | |||
| }, | |||
| { | |||
| path: '/yinnong/collectionList', | |||
| name: 'collectionList', | |||
| @@ -0,0 +1,311 @@ | |||
| <template> | |||
| <div class="app-container"> | |||
| <van-nav-bar | |||
| left-arrow | |||
| fixed | |||
| placeholder | |||
| @click-left="$router.back(-1)" | |||
| > | |||
| <template #title> | |||
| <p style="font-weight: bold;">添加重大事项</p> | |||
| </template> | |||
| <!-- <template #right>--> | |||
| <!-- <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/>--> | |||
| <!-- </template>--> | |||
| </van-nav-bar> | |||
| <van-form @submit="getChange" @failed="getError" :show-error-message="false" scroll-to-error validate-first> | |||
| <p class="main_title">基础信息</p> | |||
| <div class="main_box"> | |||
| <van-field | |||
| label="事项名称" | |||
| v-model="form.eventName" | |||
| placeholder="请输入事项名称" | |||
| input-align="right" | |||
| label-width="auto" | |||
| required | |||
| :rules="[{ required: true , message:'请输入事项名称' }]" | |||
| /> | |||
| <van-field | |||
| readonly | |||
| clickable | |||
| required | |||
| :rules="[{ required: true , message:'请选择发生日期' }]" | |||
| v-model="form.eventTime" | |||
| label="发生日期" | |||
| placeholder="请选择发生日期" | |||
| @click="showlasj = true" | |||
| input-align="right" | |||
| right-icon="arrow-down" | |||
| /> | |||
| <van-popup v-model="showlasj" position="bottom"> | |||
| <van-datetime-picker | |||
| v-model="currentDate" | |||
| type="date" | |||
| title="选择年月日" | |||
| :min-date="minDate" | |||
| :max-date="maxDate" | |||
| @confirm="onConfirmLasj" | |||
| @cancel="showlasj = false" | |||
| /> | |||
| </van-popup> | |||
| </div> | |||
| <div class="main_box" style="margin-top: 10px;"> | |||
| <van-field | |||
| label="事项内容" | |||
| input-align="right" | |||
| label-width="auto" | |||
| readonly | |||
| /> | |||
| <van-field | |||
| v-model="form.eventContent" | |||
| type="textarea" | |||
| placeholder="请输入事项内容" | |||
| rows="8" | |||
| required | |||
| :rules="[{ required: true , message:'请输入事项内容' }]" | |||
| /> | |||
| <!-- <editor v-model="form.eventContent" :min-height="192"/>--> | |||
| <!-- <quill-editors @ChangeText="(text)=>{form.eventContent=text}" :title="title" />--> | |||
| </div> | |||
| <div class="main_box" style="margin-top: 10px;"> | |||
| <van-field | |||
| label="备注" | |||
| v-model="form.remark" | |||
| type="textarea" | |||
| placeholder="请输入备注" | |||
| input-align="right" | |||
| rows="3" | |||
| label-width="auto" | |||
| /> | |||
| </div> | |||
| <!-- <p class="main_title">上传附件</p>--> | |||
| <!-- <div class="main_box" style="padding: 5px 0 0 8px;">--> | |||
| <!-- <van-uploader v-model="fileList" :after-read="beforeRead" @delete="deleteFile"></van-uploader>--> | |||
| <!-- </div>--> | |||
| <div style="padding: 16px 0;"> | |||
| <van-row> | |||
| <van-col span="6"></van-col> | |||
| <van-col span="12" align="center"> | |||
| <!-- @click="goUpdate"--> | |||
| <van-button type="info" native-type="submit" @click="buttonType='update'" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button> | |||
| </van-col> | |||
| <!-- <van-col span="12" align="center">--> | |||
| <!-- <!– @click="goAdd"–>--> | |||
| <!-- <van-button type="info" native-type="submit" @click="buttonType='add'" class="submitButton">保存并提交</van-button>--> | |||
| <!-- </van-col>--> | |||
| </van-row> | |||
| <div class="clear"></div> | |||
| </div> | |||
| </van-form> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import {addMajorevent , customSubmitMajorevent , attachmentList } from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||
| import request from '@/utils/request'; | |||
| import Dialog from "vant/lib/dialog"; | |||
| import Editor from '@/components/Editor'; | |||
| export default { | |||
| name: "approvalAdd3", | |||
| components: { | |||
| Editor, | |||
| }, | |||
| data() { | |||
| return { | |||
| title:false, | |||
| showcapital:false, | |||
| showpayee:false, | |||
| showlasj:false, | |||
| showbankType:false, | |||
| showproject:false, | |||
| showFundType:false, | |||
| showpayer:false, | |||
| buttonType:'a', | |||
| minDate: new Date(2000, 1, 1), | |||
| maxDate: new Date(2050, 12, 31), | |||
| currentDate: new Date(), | |||
| form:{}, | |||
| fileList:[], | |||
| capitalExpenditureType:'', | |||
| payee:'', | |||
| bankType:'', | |||
| wfydlxDictionaries:[], | |||
| jglxDictionaries:[], | |||
| sysDictionaries:[], | |||
| capitalExpenditureTypeOptions:[], | |||
| bankTypeDictionaries:[], | |||
| projectList:[], | |||
| projectFundTypeOptions:[], | |||
| projectFundTypeDictionaries:[], | |||
| projectListShow:[], | |||
| payerOptions:[], | |||
| chargeItme:[], | |||
| chargeItmeShow:[], | |||
| payeeList:[], | |||
| // 查询参数 | |||
| queryParams: { | |||
| transferType:"", | |||
| orderByColumn: "id", | |||
| isAsc: "desc", | |||
| }, | |||
| capitalExpenditureOpen:false, | |||
| projectForm:{ | |||
| projectId:null, | |||
| projectName:null, | |||
| projectContractor:null, | |||
| projectAmount:null, | |||
| projectBillNum:null, | |||
| projectFundType:'1', | |||
| outId:null, | |||
| ynType:'2' | |||
| }, | |||
| projectFundType:'', | |||
| uploadFiles:[], | |||
| }; | |||
| }, | |||
| created() { | |||
| this.reset(); | |||
| }, | |||
| methods: { | |||
| // 表单重置 | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| upId: null, | |||
| downId: null, | |||
| orderId: null, | |||
| cashierId: null, | |||
| transferType: '3', | |||
| accountType: '2', | |||
| explainSituation: null, | |||
| succeedAmount: null, | |||
| payer: null, | |||
| payerAccount: null, | |||
| operatorCode: null, | |||
| enterpriseCode: null, | |||
| expenditureAmount: null, | |||
| capitalExpenditureType: '1', | |||
| remark: null, | |||
| transferStatus: "0", | |||
| auditStatus: "0", | |||
| paymentState: "1", | |||
| bankPriority: "0", | |||
| clientPriority: "0" | |||
| }; | |||
| this.processList = {} | |||
| this.projectForm={ | |||
| projectId:null, | |||
| projectName:null, | |||
| projectContractor:null, | |||
| projectAmount:null, | |||
| projectBillNum:null, | |||
| projectFundType:'1', | |||
| outId:null, | |||
| ynType:'1' | |||
| } | |||
| }, | |||
| goFlow(){ | |||
| if(this.form.approvalMode == '1' && this.form.approvalTemplateId != undefined && this.form.approvalTemplateId != "undefined"){ | |||
| window.location='approvalProcess3?approvalTemplateId='+this.form.approvalTemplateId+'&approvalMode='+this.form.approvalMode; | |||
| }else{ | |||
| this.$notify({ type: 'danger', message: '无审批流程!' }); | |||
| } | |||
| }, | |||
| getChange(){ | |||
| addMajorevent(this.form).then(response => { | |||
| this.$toast.success('保存成功'); | |||
| setTimeout(function(){ | |||
| history.go(-1) | |||
| },2000) | |||
| }); | |||
| }, | |||
| getError(e){ | |||
| console.log(e) | |||
| this.$notify({ type: 'danger', message: e.errors[0].message }); | |||
| }, | |||
| onConfirmLasj(data){ | |||
| this.form.eventTime = this.getNowFormatDate(data).substr(0,10); | |||
| this.showlasj = false; | |||
| }, | |||
| beforeRead(file) { | |||
| this.uploadFiles.push(file.file); | |||
| }, | |||
| deleteFile(file){ | |||
| this.uploadFiles.map((response,index) => { | |||
| if(file.file == response){ | |||
| this.uploadFiles.splice(index,1) | |||
| } | |||
| }) | |||
| }, | |||
| getFileList(){ | |||
| let oData= { | |||
| tableId: this.$route.query.id, | |||
| tableName: "t_yinnong_transfer", | |||
| bizPath: "upload", | |||
| fileType: "0", | |||
| } | |||
| attachmentList(oData).then(res => { | |||
| console.log(res) | |||
| console.log(location.protocol+"//"+location.host+request.defaults.baseURL) | |||
| res.rows.map(r => { | |||
| let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||
| this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{})}) | |||
| console.log(r) | |||
| }) | |||
| }) | |||
| }, | |||
| goBack(){ | |||
| window.history.go(-1) | |||
| }, | |||
| //删除家庭成员 | |||
| deleteChargeItme(index){ | |||
| this.chargeItme.splice(index,1) | |||
| }, | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .app-container { | |||
| padding: 2% 0; | |||
| } | |||
| .main_title{ | |||
| font-size: 0.4rem; | |||
| color: #1D6FE9; | |||
| margin: 0.2rem 6%; | |||
| position: relative; | |||
| } | |||
| .main_box{ | |||
| width: 96%; | |||
| margin: 0 auto; | |||
| border-radius: 6px; | |||
| box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||
| overflow: hidden; | |||
| background-color: #FFF; | |||
| } | |||
| .submitButton{ | |||
| width: 80%; | |||
| margin: 0 auto; | |||
| background-color: #1D6FE9; | |||
| } | |||
| .addFamily{ | |||
| position: absolute; | |||
| top: -2px; | |||
| right: 0; | |||
| border-radius: 50%; | |||
| } | |||
| .deleteFamily{ | |||
| position: absolute; | |||
| top: 0rem; | |||
| right: 6%; | |||
| z-index: 9; | |||
| border-radius: 50%; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,298 @@ | |||
| <template> | |||
| <div class="app-container"> | |||
| <van-nav-bar | |||
| left-arrow | |||
| fixed | |||
| placeholder | |||
| @click-left="$router.back(-1)" | |||
| > | |||
| <template #title> | |||
| <p style="font-weight: bold;">重大事项</p> | |||
| </template> | |||
| <template #right> | |||
| <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/> | |||
| </template> | |||
| </van-nav-bar> | |||
| <van-form @submit="getChange" @failed="getError" :show-error-message="false" scroll-to-error validate-first readonly> | |||
| <p class="main_title">基础信息</p> | |||
| <div class="main_box"> | |||
| <van-field | |||
| label="事项名称" | |||
| v-model="form.eventName" | |||
| placeholder="事项名称" | |||
| input-align="right" | |||
| label-width="auto" | |||
| required | |||
| :rules="[{ required: true , message:'事项名称' }]" | |||
| /> | |||
| <van-field | |||
| readonly | |||
| clickable | |||
| required | |||
| :rules="[{ required: true , message:'发生日期' }]" | |||
| v-model="form.eventTime" | |||
| label="发生日期" | |||
| placeholder="发生日期" | |||
| input-align="right" | |||
| right-icon="arrow-down" | |||
| /> | |||
| <van-popup v-model="showlasj" position="bottom"> | |||
| <van-datetime-picker | |||
| v-model="currentDate" | |||
| type="date" | |||
| title="选择年月日" | |||
| :min-date="minDate" | |||
| :max-date="maxDate" | |||
| @confirm="onConfirmLasj" | |||
| @cancel="showlasj = false" | |||
| /> | |||
| </van-popup> | |||
| </div> | |||
| <div class="main_box" style="margin-top: 10px;"> | |||
| <van-field | |||
| label="事项内容" | |||
| input-align="right" | |||
| label-width="auto" | |||
| readonly | |||
| /> | |||
| <van-field | |||
| v-model="form.eventContent" | |||
| type="textarea" | |||
| placeholder="事项内容" | |||
| rows="8" | |||
| required | |||
| :rules="[{ required: true , message:'事项内容' }]" | |||
| /> | |||
| <!-- <editor v-model="form.eventContent" :min-height="192"/>--> | |||
| <!-- <quill-editors @ChangeText="(text)=>{form.eventContent=text}" :title="title" />--> | |||
| </div> | |||
| <div class="main_box" style="margin-top: 10px;"> | |||
| <van-field | |||
| label="备注" | |||
| v-model="form.remark" | |||
| type="textarea" | |||
| placeholder="备注" | |||
| input-align="right" | |||
| rows="3" | |||
| label-width="auto" | |||
| /> | |||
| </div> | |||
| <!-- <p class="main_title">上传附件</p>--> | |||
| <!-- <div class="main_box" style="padding: 5px 0 0 8px;">--> | |||
| <!-- <van-uploader v-model="fileList" :after-read="beforeRead" @delete="deleteFile"></van-uploader>--> | |||
| <!-- </div>--> | |||
| </van-form> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { addMajorevent , getMajorevent , attachmentList , updateMajorevent } from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||
| import request from '@/utils/request'; | |||
| import Dialog from "vant/lib/dialog"; | |||
| import Editor from '@/components/Editor'; | |||
| export default { | |||
| name: "approvalAdd3", | |||
| components: { | |||
| Editor, | |||
| }, | |||
| data() { | |||
| return { | |||
| title:false, | |||
| showcapital:false, | |||
| showpayee:false, | |||
| showlasj:false, | |||
| showbankType:false, | |||
| showproject:false, | |||
| showFundType:false, | |||
| showpayer:false, | |||
| buttonType:'a', | |||
| minDate: new Date(2000, 1, 1), | |||
| maxDate: new Date(2050, 12, 31), | |||
| currentDate: new Date(), | |||
| form:{}, | |||
| fileList:[], | |||
| capitalExpenditureType:'', | |||
| payee:'', | |||
| bankType:'', | |||
| wfydlxDictionaries:[], | |||
| jglxDictionaries:[], | |||
| sysDictionaries:[], | |||
| capitalExpenditureTypeOptions:[], | |||
| bankTypeDictionaries:[], | |||
| projectList:[], | |||
| projectFundTypeOptions:[], | |||
| projectFundTypeDictionaries:[], | |||
| projectListShow:[], | |||
| payerOptions:[], | |||
| chargeItme:[], | |||
| chargeItmeShow:[], | |||
| payeeList:[], | |||
| // 查询参数 | |||
| queryParams: { | |||
| transferType:"", | |||
| orderByColumn: "id", | |||
| isAsc: "desc", | |||
| }, | |||
| capitalExpenditureOpen:false, | |||
| projectForm:{ | |||
| projectId:null, | |||
| projectName:null, | |||
| projectContractor:null, | |||
| projectAmount:null, | |||
| projectBillNum:null, | |||
| projectFundType:'1', | |||
| outId:null, | |||
| ynType:'2' | |||
| }, | |||
| projectFundType:'', | |||
| uploadFiles:[], | |||
| }; | |||
| }, | |||
| created() { | |||
| this.reset(); | |||
| this.getForm(); | |||
| }, | |||
| methods: { | |||
| // 表单重置 | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| upId: null, | |||
| downId: null, | |||
| orderId: null, | |||
| cashierId: null, | |||
| transferType: '3', | |||
| accountType: '2', | |||
| explainSituation: null, | |||
| succeedAmount: null, | |||
| payer: null, | |||
| payerAccount: null, | |||
| operatorCode: null, | |||
| enterpriseCode: null, | |||
| expenditureAmount: null, | |||
| capitalExpenditureType: '1', | |||
| remark: null, | |||
| transferStatus: "0", | |||
| auditStatus: "0", | |||
| paymentState: "1", | |||
| bankPriority: "0", | |||
| clientPriority: "0" | |||
| }; | |||
| this.processList = {} | |||
| this.projectForm={ | |||
| projectId:null, | |||
| projectName:null, | |||
| projectContractor:null, | |||
| projectAmount:null, | |||
| projectBillNum:null, | |||
| projectFundType:'1', | |||
| outId:null, | |||
| ynType:'1' | |||
| } | |||
| }, | |||
| getForm(){ | |||
| getMajorevent(this.$route.query.id).then(response => { | |||
| this.form = response.data; | |||
| }); | |||
| }, | |||
| goFlow(){ | |||
| window.location='approvalProcess13?id='+this.form.instanceId; | |||
| }, | |||
| getChange(){ | |||
| updateMajorevent(this.form).then(response => { | |||
| this.$toast.success('修改成功'); | |||
| setTimeout(function(){ | |||
| history.go(-1) | |||
| },2000) | |||
| }); | |||
| }, | |||
| getError(e){ | |||
| console.log(e) | |||
| this.$notify({ type: 'danger', message: e.errors[0].message }); | |||
| }, | |||
| onConfirmLasj(data){ | |||
| this.form.eventTime = this.getNowFormatDate(data).substr(0,10); | |||
| this.showlasj = false; | |||
| }, | |||
| beforeRead(file) { | |||
| this.uploadFiles.push(file.file); | |||
| }, | |||
| deleteFile(file){ | |||
| this.uploadFiles.map((response,index) => { | |||
| if(file.file == response){ | |||
| this.uploadFiles.splice(index,1) | |||
| } | |||
| }) | |||
| }, | |||
| getFileList(){ | |||
| let oData= { | |||
| tableId: this.$route.query.id, | |||
| tableName: "t_yinnong_transfer", | |||
| bizPath: "upload", | |||
| fileType: "0", | |||
| } | |||
| attachmentList(oData).then(res => { | |||
| console.log(res) | |||
| console.log(location.protocol+"//"+location.host+request.defaults.baseURL) | |||
| res.rows.map(r => { | |||
| let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||
| this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{})}) | |||
| console.log(r) | |||
| }) | |||
| }) | |||
| }, | |||
| goBack(){ | |||
| window.history.go(-1) | |||
| }, | |||
| //删除家庭成员 | |||
| deleteChargeItme(index){ | |||
| this.chargeItme.splice(index,1) | |||
| }, | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .app-container { | |||
| padding: 2% 0; | |||
| } | |||
| .main_title{ | |||
| font-size: 0.4rem; | |||
| color: #1D6FE9; | |||
| margin: 0.2rem 6%; | |||
| position: relative; | |||
| } | |||
| .main_box{ | |||
| width: 96%; | |||
| margin: 0 auto; | |||
| border-radius: 6px; | |||
| box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||
| overflow: hidden; | |||
| background-color: #FFF; | |||
| } | |||
| .submitButton{ | |||
| width: 80%; | |||
| margin: 0 auto; | |||
| background-color: #1D6FE9; | |||
| } | |||
| .addFamily{ | |||
| position: absolute; | |||
| top: -2px; | |||
| right: 0; | |||
| border-radius: 50%; | |||
| } | |||
| .deleteFamily{ | |||
| position: absolute; | |||
| top: 0rem; | |||
| right: 6%; | |||
| z-index: 9; | |||
| border-radius: 50%; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,228 @@ | |||
| <template> | |||
| <div class="app-container"> | |||
| <van-nav-bar | |||
| left-arrow | |||
| fixed | |||
| placeholder | |||
| @click-left="$router.back(-1)" | |||
| @click-right="goAdd()" | |||
| > | |||
| <template #title> | |||
| <p style="font-weight: bold;">重大事项</p> | |||
| </template> | |||
| <template #right> | |||
| <van-icon name="add" size="18"/> | |||
| </template> | |||
| </van-nav-bar> | |||
| <van-list | |||
| v-model="loading" | |||
| :finished="finished" | |||
| finished-text="没有更多了" | |||
| @load="getList" | |||
| > | |||
| <van-swipe-cell v-for="(item,index) in applicationList" :key="index"> | |||
| <van-cell :title="item.eventName" :value="item.auditStatus" center :to="{name:'approvalDetail13', query: {id:item.id}}"> | |||
| <template #icon> | |||
| <van-icon name="../../../../../static/images/onlineHome/icon_yn3.png" size="30" color="#539FFD" style="margin-right: 10px;" /> | |||
| </template> | |||
| <template #label> | |||
| <p>{{item.eventTime}}</p> | |||
| </template> | |||
| </van-cell> | |||
| <template #right> | |||
| <van-row> | |||
| <van-col> | |||
| <van-button v-if="item.auditStatus=='草稿'||item.auditStatus=='驳回'" square text="修改" type="info" :to="{name:'approvalModify13', query: {id:item.id}}" class="delete-button" /> | |||
| </van-col> | |||
| <van-col> | |||
| <van-button v-if="item.auditStatus=='草稿'||item.auditStatus=='驳回'" color="#FFA63E" square text="提交" type="info" @click="onSubmit(item.id)" class="delete-button" /> | |||
| </van-col> | |||
| <van-col> | |||
| <van-button v-if="item.auditStatus=='草稿'||item.auditStatus=='驳回'" square text="删除" type="danger" @click="deleteList(item.id,index)" class="delete-button" /> | |||
| </van-col> | |||
| <van-col> | |||
| <van-button v-if="item.auditStatus=='草稿'||item.auditStatus=='驳回'" square text="附件" style="background-color: rgb(98,173,102,0.2);color: #62AD66;" @click="openLoader(item.id,index)" class="delete-button" /> | |||
| </van-col> | |||
| </van-row> | |||
| </template> | |||
| </van-swipe-cell> | |||
| </van-list> | |||
| <van-popup v-model="show" lock-scroll closeable position="top" :style="{ height: '30%' }" > | |||
| <div style="padding: 0 13% 0 5%;"> | |||
| <van-divider>附件</van-divider> | |||
| <van-uploader v-model="fileList" :after-read="afterRead" @delete="deleteFile1" multiple /> | |||
| </div> | |||
| </van-popup> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { delMajorevent , customSubmitMajorevent , delTransfer , listMajorevent } from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||
| import {attachmentList, commonAttach, systemAttachment} from "@/api/sunVillage_info/fixedAssets"; | |||
| import request from "@/utils/request"; | |||
| export default { | |||
| name: "approvalList3", | |||
| data() { | |||
| return { | |||
| applicationList:[], | |||
| auditStatusOptions:[], | |||
| loading: false, | |||
| finished: false, | |||
| queryParams:{ | |||
| pageNum:1, | |||
| pageSize:10, | |||
| transferType:"3", | |||
| }, | |||
| show: false, | |||
| fileList:[], | |||
| uploadFiles1:[], | |||
| projectId:'', | |||
| projectIndex:'' | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getDicts("audit_status").then((response) => { | |||
| this.auditStatusOptions = response.data; | |||
| }); | |||
| }, | |||
| methods: { | |||
| goAdd(){ | |||
| window.location = 'approvalAdd13'; | |||
| }, | |||
| getList(){ | |||
| setTimeout(() => { | |||
| listMajorevent(this.queryParams).then(response => { | |||
| console.log(response) | |||
| for (var i = 0; i < response.rows.length; i++) { | |||
| response.rows[i].auditStatus = this.selectDictLabel(this.auditStatusOptions, response.rows[i].auditStatus); | |||
| this.applicationList.push(response.rows[i]); | |||
| } | |||
| if(this.applicationList.length >= response.total){ | |||
| this.finished = true; | |||
| return; | |||
| }else{ | |||
| this.loading = false; | |||
| this.queryParams.pageNum += 1 ; | |||
| } | |||
| }); | |||
| }, 1000); | |||
| }, | |||
| openLoader(id,index){ | |||
| this.show = true; | |||
| this.projectId = id; | |||
| this.projectIndex = index; | |||
| this.fileList = []; | |||
| let oData1= { | |||
| tableId: id, | |||
| tableName: "t_yinnong_transfer", | |||
| bizPath: "transfer", | |||
| fileType: '', | |||
| } | |||
| attachmentList(oData1).then(res => { | |||
| res.rows.map(r => { | |||
| let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||
| this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id}) | |||
| }) | |||
| }) | |||
| }, | |||
| deleteList(id,index){ | |||
| this.$dialog.confirm({ | |||
| message: '您确认删除草稿?', | |||
| }) | |||
| .then(() => { | |||
| // on confirm | |||
| this.applicationList.splice(index,1) | |||
| delMajorevent(id).then(res => { | |||
| if(res.code = 200){ | |||
| this.$toast.success('删除成功'); | |||
| } | |||
| }); | |||
| }) | |||
| .catch(() => { | |||
| // on cancel | |||
| }); | |||
| }, | |||
| onSubmit(id){ | |||
| this.$dialog.confirm({ | |||
| message: '您确认提交草稿?', | |||
| }) | |||
| .then(() => { | |||
| customSubmitMajorevent(id).then(res => { | |||
| this.$toast.success('提交成功'); | |||
| setTimeout(function(){ | |||
| history.go(0) | |||
| },2000) | |||
| }) | |||
| }) | |||
| .catch(() => { | |||
| // on cancel | |||
| }); | |||
| }, | |||
| afterRead(file) { | |||
| // 此时可以自行将文件上传至服务器 | |||
| this.uploadFiles1.push(file.file); | |||
| let params1 = new FormData(); | |||
| params1.append("tableId", this.projectId); | |||
| params1.append("tableName", "t_yinnong_transfer"); | |||
| params1.append("bizPath", "transfer"); | |||
| params1.append("fileType", 'bookkeeping_type'); | |||
| params1.append("file", file.file); | |||
| commonAttach(params1).then((r1) => { | |||
| this.$notify({ type: 'success', message: '上传成功' }); | |||
| }) | |||
| }, | |||
| deleteFile1(file){ | |||
| console.log(file) | |||
| systemAttachment(file.id).then(res => { | |||
| this.$notify({ type: 'success', message: '删除成功' }); | |||
| }) | |||
| }, | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .app-container { | |||
| padding: 0.2rem 3%; | |||
| } | |||
| /deep/.van-cell__title{ | |||
| flex: 0.7; | |||
| } | |||
| /deep/.van-cell__title span{ | |||
| font-family: Arial; | |||
| font-size: 0.4rem; | |||
| font-weight: normal; | |||
| } | |||
| /deep/.van-cell__label span{ | |||
| color: #1D6FE9; | |||
| font-weight: bold; | |||
| i{ | |||
| font-size: 0.2rem; | |||
| } | |||
| } | |||
| /deep/.van-cell__value{ | |||
| flex: 0.3; | |||
| color: #1D6FE9; | |||
| font-weight: bold; | |||
| } | |||
| /deep/.van-swipe-cell{ | |||
| margin-bottom: 0.2rem; | |||
| border-radius: 0.2rem; | |||
| overflow: hidden; | |||
| box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||
| } | |||
| /deep/van-ellipsis{ | |||
| font-weight: bold; | |||
| } | |||
| .van-row{ | |||
| height: 100%; | |||
| } | |||
| .van-col{ | |||
| height: 100%; | |||
| } | |||
| .delete-button { | |||
| height: 100%; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,314 @@ | |||
| <template> | |||
| <div class="app-container"> | |||
| <van-nav-bar | |||
| left-arrow | |||
| fixed | |||
| placeholder | |||
| @click-left="$router.back(-1)" | |||
| > | |||
| <template #title> | |||
| <p style="font-weight: bold;">修改重大事项</p> | |||
| </template> | |||
| </van-nav-bar> | |||
| <van-form @submit="getChange" @failed="getError" :show-error-message="false" scroll-to-error validate-first> | |||
| <p class="main_title">基础信息</p> | |||
| <div class="main_box"> | |||
| <van-field | |||
| label="事项名称" | |||
| v-model="form.eventName" | |||
| placeholder="请输入事项名称" | |||
| input-align="right" | |||
| label-width="auto" | |||
| required | |||
| :rules="[{ required: true , message:'请输入事项名称' }]" | |||
| /> | |||
| <van-field | |||
| readonly | |||
| clickable | |||
| required | |||
| :rules="[{ required: true , message:'请选择发生日期' }]" | |||
| v-model="form.eventTime" | |||
| label="发生日期" | |||
| placeholder="请选择发生日期" | |||
| @click="showlasj = true" | |||
| input-align="right" | |||
| right-icon="arrow-down" | |||
| /> | |||
| <van-popup v-model="showlasj" position="bottom"> | |||
| <van-datetime-picker | |||
| v-model="currentDate" | |||
| type="date" | |||
| title="选择年月日" | |||
| :min-date="minDate" | |||
| :max-date="maxDate" | |||
| @confirm="onConfirmLasj" | |||
| @cancel="showlasj = false" | |||
| /> | |||
| </van-popup> | |||
| </div> | |||
| <div class="main_box" style="margin-top: 10px;"> | |||
| <van-field | |||
| label="事项内容" | |||
| input-align="right" | |||
| label-width="auto" | |||
| readonly | |||
| /> | |||
| <van-field | |||
| v-model="form.eventContent" | |||
| type="textarea" | |||
| placeholder="请输入事项内容" | |||
| rows="8" | |||
| required | |||
| :rules="[{ required: true , message:'请输入事项内容' }]" | |||
| /> | |||
| <!-- <editor v-model="form.eventContent" :min-height="192"/>--> | |||
| <!-- <quill-editors @ChangeText="(text)=>{form.eventContent=text}" :title="title" />--> | |||
| </div> | |||
| <div class="main_box" style="margin-top: 10px;"> | |||
| <van-field | |||
| label="备注" | |||
| v-model="form.remark" | |||
| type="textarea" | |||
| placeholder="请输入备注" | |||
| input-align="right" | |||
| rows="3" | |||
| label-width="auto" | |||
| /> | |||
| </div> | |||
| <!-- <p class="main_title">上传附件</p>--> | |||
| <!-- <div class="main_box" style="padding: 5px 0 0 8px;">--> | |||
| <!-- <van-uploader v-model="fileList" :after-read="beforeRead" @delete="deleteFile"></van-uploader>--> | |||
| <!-- </div>--> | |||
| <div style="padding: 16px 0;"> | |||
| <van-row> | |||
| <van-col span="6"></van-col> | |||
| <van-col span="12" align="center"> | |||
| <!-- @click="goUpdate"--> | |||
| <van-button type="info" native-type="submit" @click="buttonType='update'" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button> | |||
| </van-col> | |||
| <!-- <van-col span="12" align="center">--> | |||
| <!-- <!– @click="goAdd"–>--> | |||
| <!-- <van-button type="info" native-type="submit" @click="buttonType='add'" class="submitButton">保存并提交</van-button>--> | |||
| <!-- </van-col>--> | |||
| </van-row> | |||
| <div class="clear"></div> | |||
| </div> | |||
| </van-form> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import { addMajorevent , getMajorevent , attachmentList , updateMajorevent } from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||
| import request from '@/utils/request'; | |||
| import Dialog from "vant/lib/dialog"; | |||
| import Editor from '@/components/Editor'; | |||
| export default { | |||
| name: "approvalAdd3", | |||
| components: { | |||
| Editor, | |||
| }, | |||
| data() { | |||
| return { | |||
| title:false, | |||
| showcapital:false, | |||
| showpayee:false, | |||
| showlasj:false, | |||
| showbankType:false, | |||
| showproject:false, | |||
| showFundType:false, | |||
| showpayer:false, | |||
| buttonType:'a', | |||
| minDate: new Date(2000, 1, 1), | |||
| maxDate: new Date(2050, 12, 31), | |||
| currentDate: new Date(), | |||
| form:{}, | |||
| fileList:[], | |||
| capitalExpenditureType:'', | |||
| payee:'', | |||
| bankType:'', | |||
| wfydlxDictionaries:[], | |||
| jglxDictionaries:[], | |||
| sysDictionaries:[], | |||
| capitalExpenditureTypeOptions:[], | |||
| bankTypeDictionaries:[], | |||
| projectList:[], | |||
| projectFundTypeOptions:[], | |||
| projectFundTypeDictionaries:[], | |||
| projectListShow:[], | |||
| payerOptions:[], | |||
| chargeItme:[], | |||
| chargeItmeShow:[], | |||
| payeeList:[], | |||
| // 查询参数 | |||
| queryParams: { | |||
| transferType:"", | |||
| orderByColumn: "id", | |||
| isAsc: "desc", | |||
| }, | |||
| capitalExpenditureOpen:false, | |||
| projectForm:{ | |||
| projectId:null, | |||
| projectName:null, | |||
| projectContractor:null, | |||
| projectAmount:null, | |||
| projectBillNum:null, | |||
| projectFundType:'1', | |||
| outId:null, | |||
| ynType:'2' | |||
| }, | |||
| projectFundType:'', | |||
| uploadFiles:[], | |||
| }; | |||
| }, | |||
| created() { | |||
| this.reset(); | |||
| this.getForm(); | |||
| }, | |||
| methods: { | |||
| // 表单重置 | |||
| reset() { | |||
| this.form = { | |||
| id: null, | |||
| upId: null, | |||
| downId: null, | |||
| orderId: null, | |||
| cashierId: null, | |||
| transferType: '3', | |||
| accountType: '2', | |||
| explainSituation: null, | |||
| succeedAmount: null, | |||
| payer: null, | |||
| payerAccount: null, | |||
| operatorCode: null, | |||
| enterpriseCode: null, | |||
| expenditureAmount: null, | |||
| capitalExpenditureType: '1', | |||
| remark: null, | |||
| transferStatus: "0", | |||
| auditStatus: "0", | |||
| paymentState: "1", | |||
| bankPriority: "0", | |||
| clientPriority: "0" | |||
| }; | |||
| this.processList = {} | |||
| this.projectForm={ | |||
| projectId:null, | |||
| projectName:null, | |||
| projectContractor:null, | |||
| projectAmount:null, | |||
| projectBillNum:null, | |||
| projectFundType:'1', | |||
| outId:null, | |||
| ynType:'1' | |||
| } | |||
| }, | |||
| getForm(){ | |||
| getMajorevent(this.$route.query.id).then(response => { | |||
| this.form = response.data; | |||
| }); | |||
| }, | |||
| goFlow(){ | |||
| if(this.form.approvalMode == '1' && this.form.approvalTemplateId != undefined && this.form.approvalTemplateId != "undefined"){ | |||
| window.location='approvalProcess3?approvalTemplateId='+this.form.approvalTemplateId+'&approvalMode='+this.form.approvalMode; | |||
| }else{ | |||
| this.$notify({ type: 'danger', message: '无审批流程!' }); | |||
| } | |||
| }, | |||
| getChange(){ | |||
| updateMajorevent(this.form).then(response => { | |||
| this.$toast.success('修改成功'); | |||
| setTimeout(function(){ | |||
| history.go(-1) | |||
| },2000) | |||
| }); | |||
| }, | |||
| getError(e){ | |||
| console.log(e) | |||
| this.$notify({ type: 'danger', message: e.errors[0].message }); | |||
| }, | |||
| onConfirmLasj(data){ | |||
| this.form.eventTime = this.getNowFormatDate(data).substr(0,10); | |||
| this.showlasj = false; | |||
| }, | |||
| beforeRead(file) { | |||
| this.uploadFiles.push(file.file); | |||
| }, | |||
| deleteFile(file){ | |||
| this.uploadFiles.map((response,index) => { | |||
| if(file.file == response){ | |||
| this.uploadFiles.splice(index,1) | |||
| } | |||
| }) | |||
| }, | |||
| getFileList(){ | |||
| let oData= { | |||
| tableId: this.$route.query.id, | |||
| tableName: "t_yinnong_transfer", | |||
| bizPath: "upload", | |||
| fileType: "0", | |||
| } | |||
| attachmentList(oData).then(res => { | |||
| console.log(res) | |||
| console.log(location.protocol+"//"+location.host+request.defaults.baseURL) | |||
| res.rows.map(r => { | |||
| let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | |||
| this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{})}) | |||
| console.log(r) | |||
| }) | |||
| }) | |||
| }, | |||
| goBack(){ | |||
| window.history.go(-1) | |||
| }, | |||
| //删除家庭成员 | |||
| deleteChargeItme(index){ | |||
| this.chargeItme.splice(index,1) | |||
| }, | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .app-container { | |||
| padding: 2% 0; | |||
| } | |||
| .main_title{ | |||
| font-size: 0.4rem; | |||
| color: #1D6FE9; | |||
| margin: 0.2rem 6%; | |||
| position: relative; | |||
| } | |||
| .main_box{ | |||
| width: 96%; | |||
| margin: 0 auto; | |||
| border-radius: 6px; | |||
| box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||
| overflow: hidden; | |||
| background-color: #FFF; | |||
| } | |||
| .submitButton{ | |||
| width: 80%; | |||
| margin: 0 auto; | |||
| background-color: #1D6FE9; | |||
| } | |||
| .addFamily{ | |||
| position: absolute; | |||
| top: -2px; | |||
| right: 0; | |||
| border-radius: 50%; | |||
| } | |||
| .deleteFamily{ | |||
| position: absolute; | |||
| top: 0rem; | |||
| right: 6%; | |||
| z-index: 9; | |||
| border-radius: 50%; | |||
| } | |||
| </style> | |||
| @@ -0,0 +1,169 @@ | |||
| <template> | |||
| <div class="app-container"> | |||
| <van-nav-bar | |||
| left-arrow | |||
| fixed | |||
| placeholder | |||
| @click-left="$router.back(-1)" | |||
| > | |||
| <template #title> | |||
| <p style="font-weight: bold;">审批历史</p> | |||
| </template> | |||
| </van-nav-bar> | |||
| <div class="main_box"> | |||
| <van-row v-if="approvalTemplateDetailList.length>0" v-for="(item1,index,i) in approvalTemplateDetailList" :key="i"> | |||
| <van-col span="4" align="right"> | |||
| <p class="icon_jian blue" ><van-icon name="minus" size="14" /></p> | |||
| </van-col> | |||
| <van-col span="20"> | |||
| <van-row> | |||
| <van-col span="9" style="padding: 0;"> | |||
| <p>{{item1.activityName}}</p> | |||
| </van-col> | |||
| <van-col span="15" style="padding: 0;"> | |||
| <p style="text-align: right;">{{item1.startTime}}</p> | |||
| </van-col> | |||
| </van-row> | |||
| <van-row> | |||
| <van-col span="9" style="padding: 0;"> | |||
| <p>{{item1.assigneeName}}</p> | |||
| </van-col> | |||
| <van-col span="15" style="padding: 0;"> | |||
| <p style="text-align: right;">{{item1.comment}}</p> | |||
| </van-col> | |||
| </van-row> | |||
| </van-col> | |||
| </van-row> | |||
| </div> | |||
| </div> | |||
| </template> | |||
| <script> | |||
| import request from "@/utils/request"; | |||
| export default { | |||
| name: "approvalProcess", | |||
| data() { | |||
| return { | |||
| processList:{}, | |||
| form:{}, | |||
| approvalTemplateDeptList:[], | |||
| approvalTemplateDetailList:[] | |||
| }; | |||
| }, | |||
| created() { | |||
| this.getHistoryList(this.$route.query.id); | |||
| }, | |||
| methods: { | |||
| getHistoryList(instanceId) { | |||
| this.loading = true; | |||
| return request({ | |||
| url: "/activiti/process/listHistory", | |||
| method: "post", | |||
| data: { processInstanceId: instanceId }, | |||
| }) | |||
| .then((response) => { | |||
| this.approvalTemplateDetailList = response.rows; | |||
| this.approvalTemplateDetailList.forEach((row) => { | |||
| row.startTime = this.format(row.startTime, "yyyy-MM-dd HH:mm:ss"); | |||
| row.endTime = this.format(row.endTime, "yyyy-MM-dd HH:mm:ss"); | |||
| row.durationInMillis = this.formatTotalDateSub( | |||
| row.durationInMillis / 1000 | |||
| ); | |||
| }); | |||
| this.total = response.total; | |||
| this.loading = false; | |||
| }) | |||
| .then(() => {}); | |||
| }, | |||
| formatTotalDateSub (secondSub) { | |||
| var days = Math.floor(secondSub / (24 * 3600)); // 计算出小时数 | |||
| var leave1 = secondSub % (24*3600) ; // 计算天数后剩余的毫秒数 | |||
| var hours = Math.floor(leave1 / 3600); // 计算相差分钟数 | |||
| var leave2 = leave1 % (3600); // 计算小时数后剩余的毫秒数 | |||
| var minutes = Math.floor(leave2 / 60); // 计算相差秒数 | |||
| var leave3 = leave2 % 60; // 计算分钟数后剩余的毫秒数 | |||
| var seconds = Math.round(leave3); | |||
| return days + "天" + hours + "时" + minutes + "分" + seconds + '秒'; | |||
| }, | |||
| format(time, format) { | |||
| var t = new Date(time); | |||
| var tf = function (i) { return (i < 10 ? '0' : '') + i }; | |||
| return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) { | |||
| switch (a) { | |||
| case 'yyyy': | |||
| return tf(t.getFullYear()); | |||
| break; | |||
| case 'MM': | |||
| return tf(t.getMonth() + 1); | |||
| break; | |||
| case 'mm': | |||
| return tf(t.getMinutes()); | |||
| break; | |||
| case 'dd': | |||
| return tf(t.getDate()); | |||
| break; | |||
| case 'HH': | |||
| return tf(t.getHours()); | |||
| break; | |||
| case 'ss': | |||
| return tf(t.getSeconds()); | |||
| break; | |||
| } | |||
| }) | |||
| } | |||
| }, | |||
| } | |||
| </script> | |||
| <style scoped lang="scss"> | |||
| .app-container { | |||
| padding: 0.2rem 0; | |||
| } | |||
| .main_box{ | |||
| width: 96%; | |||
| margin: 0 auto; | |||
| border-radius: 6px; | |||
| box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||
| overflow: hidden; | |||
| background-color: #FFF; | |||
| padding: 20Px 0; | |||
| } | |||
| .icon_jian{ | |||
| background-color: #C9C9C9; | |||
| display: inline-block; | |||
| width: 20Px; | |||
| height: 20Px; | |||
| line-height: 24Px; | |||
| text-align: center; | |||
| border-radius: 50%; | |||
| color: #FFF; | |||
| } | |||
| .blue{ | |||
| background-color: #1D6FE9; | |||
| } | |||
| .red{ | |||
| background-color: rgb(245, 108, 108); | |||
| } | |||
| .textBlue{ | |||
| color: #1D6FE9!important; | |||
| } | |||
| .textRed{ | |||
| color: rgb(245, 108, 108)!important; | |||
| } | |||
| .van-col{ | |||
| padding: 10Px 10Px; | |||
| } | |||
| .van-col:nth-child(2){ | |||
| font-size: 16Px; | |||
| color: #878787; | |||
| line-height: 22Px; | |||
| } | |||
| .van-row{ | |||
| .van-row{ | |||
| .van-col{ | |||
| padding: 0 0 5Px 0!important; | |||
| color: #878787; | |||
| } | |||
| } | |||
| } | |||
| </style> | |||
| @@ -114,6 +114,12 @@ | |||
| </div> | |||
| <p style="margin-top: 5px;color: #666666;">开户行</p> | |||
| </van-grid-item> | |||
| <van-grid-item text="重大事项" :to="{name:'approvalList13'}" > | |||
| <div class="icon" slot="default" style="background:#c568f5;" > | |||
| <img src="../../../static/images/onlineHome/icon_Y3.png" alt /> | |||
| </div> | |||
| <p style="margin-top: 5px;color: #666666;">重大事项</p> | |||
| </van-grid-item> | |||
| </van-grid> | |||
| </van-row> | |||
| <yinnongIndex></yinnongIndex> | |||