报价单优化
This commit is contained in:
parent
a0b91c4e80
commit
b30a855f56
|
|
@ -22,6 +22,7 @@
|
||||||
"core-js": "^3.6.5",
|
"core-js": "^3.6.5",
|
||||||
"date-fns": "^2.14.0",
|
"date-fns": "^2.14.0",
|
||||||
"enquire.js": "^2.1.6",
|
"enquire.js": "^2.1.6",
|
||||||
|
"hevue-img-preview": "^6.1.0",
|
||||||
"highlight.js": "^10.2.1",
|
"highlight.js": "^10.2.1",
|
||||||
"js-cookie": "^2.2.1",
|
"js-cookie": "^2.2.1",
|
||||||
"json-bigint": "^1.0.0",
|
"json-bigint": "^1.0.0",
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,8 @@
|
||||||
|
/**
|
||||||
|
* Minified by jsDelivr using Terser v3.14.1.
|
||||||
|
* Original file: /npm/js-cookie@2.2.1/src/js.cookie.js
|
||||||
|
*
|
||||||
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||||
|
*/
|
||||||
|
!function(e){var n;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var t=window.Cookies,o=window.Cookies=e();o.noConflict=function(){return window.Cookies=t,o}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var t=arguments[e];for(var o in t)n[o]=t[o]}return n}function n(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function t(o){function r(){}function i(n,t,i){if("undefined"!=typeof document){"number"==typeof(i=e({path:"/"},r.defaults,i)).expires&&(i.expires=new Date(1*new Date+864e5*i.expires)),i.expires=i.expires?i.expires.toUTCString():"";try{var c=JSON.stringify(t);/^[\{\[]/.test(c)&&(t=c)}catch(e){}t=o.write?o.write(t,n):encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var f="";for(var u in i)i[u]&&(f+="; "+u,!0!==i[u]&&(f+="="+i[u].split(";")[0]));return document.cookie=n+"="+t+f}}function c(e,t){if("undefined"!=typeof document){for(var r={},i=document.cookie?document.cookie.split("; "):[],c=0;c<i.length;c++){var f=i[c].split("="),u=f.slice(1).join("=");t||'"'!==u.charAt(0)||(u=u.slice(1,-1));try{var a=n(f[0]);if(u=(o.read||o)(u,a)||n(u),t)try{u=JSON.parse(u)}catch(e){}if(r[a]=u,e===a)break}catch(e){}}return e?r[e]:r}}return r.set=i,r.get=function(e){return c(e,!1)},r.getJSON=function(e){return c(e,!0)},r.remove=function(n,t){i(n,"",e(t,{expires:-1}))},r.defaults={},r.withConverter=t,r}(function(){})});
|
||||||
|
//# sourceMappingURL=/sm/b0ce608ffc029736e9ac80a8dd6a7db2da8e1d45d2dcfc92043deb2214aa30d8.map
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
/**
|
||||||
|
* Minified by jsDelivr using UglifyJS v3.4.4.
|
||||||
|
* Original file: /npm/nprogress@0.2.0/nprogress.js
|
||||||
|
*
|
||||||
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||||
|
*/
|
||||||
|
!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():e.NProgress=n()}(this,function(){var n,t,o={version:"0.2.0"},a=o.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function u(e,n,t){return e<n?n:t<e?t:e}function c(e){return 100*(-1+e)}o.configure=function(e){var n,t;for(n in e)void 0!==(t=e[n])&&e.hasOwnProperty(n)&&(a[n]=t);return this},o.status=null,o.set=function(n){var e=o.isStarted();n=u(n,a.minimum,1),o.status=1===n?null:n;var t=o.render(!e),r=t.querySelector(a.barSelector),i=a.speed,s=a.easing;return t.offsetWidth,l(function(e){""===a.positionUsing&&(a.positionUsing=o.getPositioningCSS()),f(r,function(e,n,t){var r;r="translate3d"===a.positionUsing?{transform:"translate3d("+c(e)+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+c(e)+"%,0)"}:{"margin-left":c(e)+"%"};return r.transition="all "+n+"ms "+t,r}(n,i,s)),1===n?(f(t,{transition:"none",opacity:1}),t.offsetWidth,setTimeout(function(){f(t,{transition:"all "+i+"ms linear",opacity:0}),setTimeout(function(){o.remove(),e()},i)},i)):setTimeout(e,i)}),this},o.isStarted=function(){return"number"==typeof o.status},o.start=function(){o.status||o.set(0);var e=function(){setTimeout(function(){o.status&&(o.trickle(),e())},a.trickleSpeed)};return a.trickle&&e(),this},o.done=function(e){return e||o.status?o.inc(.3+.5*Math.random()).set(1):this},o.inc=function(e){var n=o.status;return n?("number"!=typeof e&&(e=(1-n)*u(Math.random()*n,.1,.95)),n=u(n+e,0,.994),o.set(n)):o.start()},o.trickle=function(){return o.inc(Math.random()*a.trickleRate)},t=n=0,o.promise=function(e){return e&&"resolved"!==e.state()&&(0===t&&o.start(),n++,t++,e.always(function(){0==--t?(n=0,o.done()):o.set((n-t)/n)})),this},o.render=function(e){if(o.isRendered())return document.getElementById("nprogress");d(document.documentElement,"nprogress-busy");var n=document.createElement("div");n.id="nprogress",n.innerHTML=a.template;var t,r=n.querySelector(a.barSelector),i=e?"-100":c(o.status||0),s=document.querySelector(a.parent);return f(r,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),a.showSpinner||(t=n.querySelector(a.spinnerSelector))&&m(t),s!=document.body&&d(s,"nprogress-custom-parent"),s.appendChild(n),n},o.remove=function(){r(document.documentElement,"nprogress-busy"),r(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&m(e)},o.isRendered=function(){return!!document.getElementById("nprogress")},o.getPositioningCSS=function(){var e=document.body.style,n="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return n+"Perspective"in e?"translate3d":n+"Transform"in e?"translate":"margin"};var l=function(){var n=[];function t(){var e=n.shift();e&&e(t)}return function(e){n.push(e),1==n.length&&t()}}(),f=function(){var s=["Webkit","O","Moz","ms"],n={};function r(e){return e=e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(e,n){return n.toUpperCase()}),n[e]||(n[e]=function(e){var n=document.body.style;if(e in n)return e;for(var t,r=s.length,i=e.charAt(0).toUpperCase()+e.slice(1);r--;)if((t=s[r]+i)in n)return t;return e}(e))}function o(e,n,t){n=r(n),e.style[n]=t}return function(e,n){var t,r,i=arguments;if(2==i.length)for(t in n)void 0!==(r=n[t])&&n.hasOwnProperty(t)&&o(e,t,r);else o(e,i[1],i[2])}}();function i(e,n){return 0<=("string"==typeof e?e:s(e)).indexOf(" "+n+" ")}function d(e,n){var t=s(e),r=t+n;i(t,n)||(e.className=r.substring(1))}function r(e,n){var t,r=s(e);i(e,n)&&(t=r.replace(" "+n+" "," "),e.className=t.substring(1,t.length-1))}function s(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function m(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return o});
|
||||||
|
//# sourceMappingURL=/sm/214fc7fb47eb8acd8c0acd7dd29f0480aef824549679beef626bf06f9e7a8fd7.map
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -59,7 +59,12 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
showCropper() {
|
showCropper() {
|
||||||
|
if(this.value){
|
||||||
|
this.$hevueImgPreview(this.value)
|
||||||
|
}else{
|
||||||
this.$refs.cropper.show();
|
this.$refs.cropper.show();
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
delFile(){
|
delFile(){
|
||||||
this.showUrl = "";
|
this.showUrl = "";
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<input autocomplete="off" class="readonlytext" type="text" :value="value" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'MkFormInputShow',
|
||||||
|
components: {
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: String
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
|
||||||
|
.readonlytext{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 4px;
|
||||||
|
outline: 0;
|
||||||
|
margin: 0;
|
||||||
|
font-size: inherit;
|
||||||
|
font-family: inherit;
|
||||||
|
line-height: inherit;
|
||||||
|
padding: 0 0.6em;
|
||||||
|
color: #606266;
|
||||||
|
border: 1px solid #dcdfe6;
|
||||||
|
background-color: #fff;
|
||||||
|
-webkit-box-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
|
||||||
|
border:none;
|
||||||
|
border-bottom: 1px solid #d3d3d3;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -8,6 +8,7 @@ import VXETable from 'vxe-table' // 加载vxe-table
|
||||||
import MkPrinter from './components/editors/MkPrinter.vue'
|
import MkPrinter from './components/editors/MkPrinter.vue'
|
||||||
import MkCropper from './components/editors/MkCropper.vue'
|
import MkCropper from './components/editors/MkCropper.vue'
|
||||||
import MkFormCropper from './components/editors/MkFormCropper.vue'
|
import MkFormCropper from './components/editors/MkFormCropper.vue'
|
||||||
|
import MkFormInputShow from './components/editors/MkFormInputShow.vue'
|
||||||
import MkGridSelect from './components/editors/MkGridSelect.vue' // 加载下拉表格
|
import MkGridSelect from './components/editors/MkGridSelect.vue' // 加载下拉表格
|
||||||
import MkGridDataSelector from './components/editors/MkGridDataSelector.vue' // 加载下拉表格
|
import MkGridDataSelector from './components/editors/MkGridDataSelector.vue' // 加载下拉表格
|
||||||
import MkFormDataSelector from './components/editors/MkFormDataSelector.vue' // 加载下拉表单
|
import MkFormDataSelector from './components/editors/MkFormDataSelector.vue' // 加载下拉表单
|
||||||
|
|
@ -15,6 +16,7 @@ import switchCompany from './components/switchCompany/switchCompany' // 加载
|
||||||
import XEUtils from 'xe-utils' // 加载xe-utils
|
import XEUtils from 'xe-utils' // 加载xe-utils
|
||||||
import MkFormUploader from './components/editors/MkFormUploader.vue'
|
import MkFormUploader from './components/editors/MkFormUploader.vue'
|
||||||
import MkFormEditor from './components/editors/MkFormEditor.vue'
|
import MkFormEditor from './components/editors/MkFormEditor.vue'
|
||||||
|
import hevueImgPreview from 'hevue-img-preview'
|
||||||
|
|
||||||
// 创建一个下拉表格渲染
|
// 创建一个下拉表格渲染
|
||||||
VXETable.renderer.add('MkGridDataSelector', { // 创建一个下拉表格渲染
|
VXETable.renderer.add('MkGridDataSelector', { // 创建一个下拉表格渲染
|
||||||
|
|
@ -39,7 +41,14 @@ VXETable.renderer.add('MkFormDataSelector', {
|
||||||
return <mk-form-data-selector v-model={data[field]} {...{ props }}></mk-form-data-selector>
|
return <mk-form-data-selector v-model={data[field]} {...{ props }}></mk-form-data-selector>
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
VXETable.renderer.add('MkFormInputShow', {
|
||||||
|
// 项内容模板
|
||||||
|
renderItemContent(h, renderOpts, params) {
|
||||||
|
const { data, field } = params
|
||||||
|
const props = renderOpts.props || {}
|
||||||
|
return <mk-form-input-show v-model={data[field]} {...{ props }}></mk-form-input-show>
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -161,6 +170,12 @@ var mk = {
|
||||||
Vue.component(MkFormUploader.name,MkFormUploader);
|
Vue.component(MkFormUploader.name,MkFormUploader);
|
||||||
Vue.component(MkFormEditor.name,MkFormEditor);
|
Vue.component(MkFormEditor.name,MkFormEditor);
|
||||||
Vue.component(MkFormCropper.name,MkFormCropper);
|
Vue.component(MkFormCropper.name,MkFormCropper);
|
||||||
|
Vue.component(MkFormInputShow.name,MkFormInputShow);
|
||||||
|
|
||||||
|
//图片预览组件
|
||||||
|
//使用方法:this.$hevueImgPreview(url)
|
||||||
|
Vue.use(hevueImgPreview)
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
img{
|
img{
|
||||||
max-width: 45px;
|
max-width: 40px;
|
||||||
max-height: 40px;
|
max-height: 40px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
<template>
|
<template>
|
||||||
<page-layout :desc="desc">
|
|
||||||
<div class="page-body">
|
<div class="page-body">
|
||||||
|
|
||||||
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
|
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
|
||||||
|
|
@ -19,19 +18,17 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</page-layout>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BASE_URL from '@/services/Middle/bathroom/BathroomFittings/api.js';
|
import BASE_URL from '@/services/Middle/bathroom/BathroomFittings/api.js';
|
||||||
import PageLayout from '@/layouts/PageLayout'
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
name: 'BathroomFittingsUpdate',
|
name: 'BathroomFittingsUpdate',
|
||||||
i18n: require('./i18n'),
|
i18n: require('./i18n'),
|
||||||
components: { PageLayout },
|
components: { },
|
||||||
props: {
|
props: {
|
||||||
pageMode: {
|
pageMode: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
||||||
|
|
@ -99,13 +99,13 @@ export default {
|
||||||
},
|
},
|
||||||
// 搜索区配置
|
// 搜索区配置
|
||||||
searchRules: [
|
searchRules: [
|
||||||
{ key: "title", mode: "like" },
|
{ key: "name", mode: "like" },
|
||||||
{ key: "desc", mode: "like" }
|
{ key: "model", mode: "like" }
|
||||||
],
|
],
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormItems: [ // 子项
|
searchFormItems: [ // 子项
|
||||||
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
|
{ field: 'name', title: '部件名', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入部件名' } } },
|
||||||
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
|
{ field: 'model', title: '型号', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入型号' } } },
|
||||||
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
||||||
{
|
{
|
||||||
align: 'right', span: 4, itemRender: { // 按钮列
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
|
|
@ -196,7 +196,9 @@ export default {
|
||||||
computed: {
|
computed: {
|
||||||
// 页面描述
|
// 页面描述
|
||||||
desc() {
|
desc() {
|
||||||
return this.$t('pageDesc')
|
let desc = this.$t('pageDesc');
|
||||||
|
if(desc == ' ') return '';
|
||||||
|
return desc;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
messages: {
|
messages: {
|
||||||
CN: {
|
CN: {
|
||||||
pageDesc: '描述内容',
|
pageDesc: ' ',
|
||||||
},
|
},
|
||||||
HK: {
|
HK: {
|
||||||
pageDesc: '描述内容',
|
pageDesc: ' ',
|
||||||
},
|
},
|
||||||
US: {
|
US: {
|
||||||
pageDesc: 'Form pages are used to collect or verify information to users, and basic forms are common in scenarios where there are fewer data items.',
|
pageDesc: ' ',
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
<template>
|
<template>
|
||||||
<page-layout :desc="desc">
|
|
||||||
<div class="page-body">
|
<div class="page-body">
|
||||||
|
|
||||||
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
|
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
|
||||||
|
|
@ -19,19 +18,18 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</page-layout>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BASE_URL from '@/services/Middle/bathroom/BathroomMaterial/api.js';
|
import BASE_URL from '@/services/Middle/bathroom/BathroomMaterial/api.js';
|
||||||
import PageLayout from '@/layouts/PageLayout'
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
name: 'BathroomMaterialUpdate',
|
name: 'BathroomMaterialUpdate',
|
||||||
i18n: require('./i18n'),
|
i18n: require('./i18n'),
|
||||||
components: { PageLayout },
|
components: { },
|
||||||
props: {
|
props: {
|
||||||
pageMode: {
|
pageMode: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
@ -113,11 +111,11 @@ export default {
|
||||||
// =============================== 表单项 自动生成 Start ===============================
|
// =============================== 表单项 自动生成 Start ===============================
|
||||||
|
|
||||||
{ field: 'name', title: '材料名称', span: 12, itemRender: { name: '$input' } },
|
{ field: 'name', title: '材料名称', span: 12, itemRender: { name: '$input' } },
|
||||||
|
{ field: 'spec', title: '厚度', span: 12, itemRender: { name: '$input', props: { type: 'number' } } },
|
||||||
{ field: 'code', title: '编码', span: 12, itemRender: { name: '$input' } },
|
{ field: 'code', title: '编码', span: 12, itemRender: { name: '$input' } },
|
||||||
{ field: 'type', title: '材料类型', span: 12, itemRender: { name: '$input' } },
|
{ field: 'type', title: '材料类型', span: 12, itemRender: { name: '$input' } },
|
||||||
{ field: 'spec', title: '材料规格', span: 12, itemRender: { name: '$input' } },
|
|
||||||
{ field: 'unit', title: '单位', span: 12, itemRender: { name: '$input' } },
|
{ field: 'unit', title: '单位', span: 12, itemRender: { name: '$input' } },
|
||||||
{ field: 'image', title: '图片', span: 12, itemRender: { name: '$input' } },
|
//{ field: 'image', title: '图片', span: 12, itemRender: { name: '$input' } },
|
||||||
{ field: 'remark', title: '备注', span: 12, itemRender: { name: '$input' } },
|
{ field: 'remark', title: '备注', span: 12, itemRender: { name: '$input' } },
|
||||||
|
|
||||||
// =============================== 表单项 自动生成 End ===============================
|
// =============================== 表单项 自动生成 End ===============================
|
||||||
|
|
|
||||||
|
|
@ -99,13 +99,13 @@ export default {
|
||||||
},
|
},
|
||||||
// 搜索区配置
|
// 搜索区配置
|
||||||
searchRules: [
|
searchRules: [
|
||||||
{ key: "title", mode: "like" },
|
{ key: "name", mode: "like" },
|
||||||
{ key: "desc", mode: "like" }
|
{ key: "spec", mode: "like" }
|
||||||
],
|
],
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormItems: [ // 子项
|
searchFormItems: [ // 子项
|
||||||
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
|
{ field: 'name', title: '材料名', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入材料名' } } },
|
||||||
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
|
{ field: 'spec', title: '规格', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入规格' } } },
|
||||||
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
||||||
{
|
{
|
||||||
align: 'right', span: 4, itemRender: { // 按钮列
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
|
|
@ -169,7 +169,7 @@ export default {
|
||||||
{ field: 'type', sortable: true, title: '材料类型', width: 250 }, // 材料类型
|
{ field: 'type', sortable: true, title: '材料类型', width: 250 }, // 材料类型
|
||||||
{ field: 'spec', sortable: true, title: '材料规格', width: 250 }, // 材料规格
|
{ field: 'spec', sortable: true, title: '材料规格', width: 250 }, // 材料规格
|
||||||
{ field: 'unit', sortable: true, title: '单位', width: 250 }, // 单位
|
{ field: 'unit', sortable: true, title: '单位', width: 250 }, // 单位
|
||||||
{ field: 'image', sortable: true, title: '图片', width: 250 }, // 图片
|
// { field: 'image', sortable: true, title: '图片', width: 250 }, // 图片
|
||||||
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
||||||
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,31 @@
|
||||||
|
|
||||||
|
|
||||||
<div class="topbar">
|
<div class="topbar">
|
||||||
<a-button type="primary" @click="ok">保存</a-button>
|
|
||||||
<a-button @click="selectScheme">选择主柜/抽屉</a-button>
|
<a-button @click="selectScheme">选择主柜/抽屉</a-button>
|
||||||
<a-button @click="print">打印</a-button>
|
<a-button @click="print">打印</a-button>
|
||||||
<a-button @click="cancel">取消</a-button>
|
<a-button @click="toggleAll">收缩/展开</a-button>
|
||||||
|
|
||||||
<vxe-switch v-model="showExp" open-label="显示公式" :open-value="true" close-label="显示数值"
|
<vxe-switch v-model="showExp" open-label="显示公式" :open-value="true" close-label="显示数值"
|
||||||
:close-value="false"></vxe-switch>
|
:close-value="false"></vxe-switch>
|
||||||
|
|
||||||
|
<a-radio-group :value="showType" @change="showTypeChange">
|
||||||
|
<a-radio-button value="1">
|
||||||
|
显示全部
|
||||||
|
</a-radio-button>
|
||||||
|
<a-radio-button value="2">
|
||||||
|
免漆
|
||||||
|
</a-radio-button>
|
||||||
|
<a-radio-button value="3">
|
||||||
|
油漆
|
||||||
|
</a-radio-button>
|
||||||
|
</a-radio-group>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<a-tabs v-model="tabKey" hide-add @edit="onTabEdit" @change="tabChange">
|
||||||
|
<a-tab-pane key="main" tab="整装">
|
||||||
|
|
||||||
|
|
||||||
<a-collapse v-model="groupbox1_activeKey">
|
<a-collapse v-model="groupbox1_activeKey">
|
||||||
<a-collapse-panel key="1" header="基本信息">
|
<a-collapse-panel key="1" header="基本信息">
|
||||||
|
|
||||||
|
|
@ -22,7 +38,15 @@
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
<a-collapse-panel key="2" header="材料部分">
|
<a-collapse-panel key="2" header="材料部分">
|
||||||
|
|
||||||
<vxe-table border show-overflow keep-source ref="fittings_xTable" :data="fittings_detailsData" :keyboard-config="{
|
<div slot="extra">
|
||||||
|
(合计)板材数量:{{ parseFloat(formOptions.data.fittings_total_quantity || 0).toFixed(0) }}
|
||||||
|
封边用量:{{ parseFloat(formOptions.data.fittings_total_seal || 0).toFixed(2) }}
|
||||||
|
板材用量:{{ parseFloat(formOptions.data.fittings_total_board_length || 0).toFixed(3) }}
|
||||||
|
油漆面积:{{ parseFloat(formOptions.data.fittings_total_paint_area || 0).toFixed(3) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<vxe-table border show-overflow keep-source ref="fittings_xTable" :data="fittings_detailsData"
|
||||||
|
:keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
}" :mouse-config="{ selected: true }" @pulldownSelected="fittings_onPulldownSelected" show-footer
|
}" :mouse-config="{ selected: true }" @pulldownSelected="fittings_onPulldownSelected" show-footer
|
||||||
|
|
@ -119,7 +143,8 @@
|
||||||
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
||||||
<vxe-column field="paint_number" title="油漆面" width="80"
|
<vxe-column field="paint_number" title="油漆面" width="80"
|
||||||
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
||||||
<vxe-column field="board_length_formula" title="板材用量(块)" width="220" :edit-render="{ name: 'EditExpressions' }">
|
<vxe-column field="board_length_formula" title="板材用量(块)" width="220"
|
||||||
|
:edit-render="{ name: 'EditExpressions' }">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
|
|
@ -137,7 +162,8 @@
|
||||||
</vxe-column>
|
</vxe-column>
|
||||||
<vxe-column field="real_quantity" title="实木用量(立方)" width="80"
|
<vxe-column field="real_quantity" title="实木用量(立方)" width="80"
|
||||||
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
|
||||||
<vxe-column field="paint_area_formula" title="油漆面积(㎡)" width="220" :edit-render="{ name: 'EditExpressions' }">
|
<vxe-column field="paint_area_formula" title="油漆面积(㎡)" width="220"
|
||||||
|
:edit-render="{ name: 'EditExpressions' }">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
|
|
@ -159,6 +185,9 @@
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
<a-collapse-panel key="3" header="配件部分">
|
<a-collapse-panel key="3" header="配件部分">
|
||||||
|
|
||||||
|
<div slot="extra">
|
||||||
|
(合计)金额:{{ parseFloat(formOptions.data.parts_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
<vxe-table border show-overflow keep-source ref="parts_xTable" :data="parts_detailsData" :keyboard-config="{
|
<vxe-table border show-overflow keep-source ref="parts_xTable" :data="parts_detailsData" :keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
|
|
@ -210,8 +239,11 @@
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
|
|
||||||
<a-collapse-panel key="4" header="包装部分">
|
<a-collapse-panel key="4" header="包装部分">
|
||||||
|
<div slot="extra">
|
||||||
<vxe-table border show-overflow keep-source ref="packaging_xTable" :data="packaging_detailsData" :keyboard-config="{
|
(合计)金额:{{ parseFloat(formOptions.data.packaging_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
|
<vxe-table border show-overflow keep-source ref="packaging_xTable" :data="packaging_detailsData"
|
||||||
|
:keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
}" :mouse-config="{ selected: true }" @pulldownSelected="packaging_onPulldownSelected"
|
}" :mouse-config="{ selected: true }" @pulldownSelected="packaging_onPulldownSelected"
|
||||||
|
|
@ -316,17 +348,47 @@
|
||||||
|
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
|
|
||||||
|
|
||||||
|
<a-collapse-panel key="5" header="抽屉部分">
|
||||||
|
|
||||||
|
<div slot="extra">
|
||||||
|
(合计)金额:{{ parseFloat(formOptions.data.drawer_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
|
<vxe-table border show-overflow keep-source ref="drawer_xTable" :data="drawer_detailsData" :keyboard-config="{
|
||||||
|
isArrow: true, isDel: true,
|
||||||
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
|
}" :mouse-config="{ selected: true }" @pulldownSelected="drawer_onPulldownSelected"
|
||||||
|
@popupSelected="drawer_onPopupSelected" :export-config="{}" @edit-closed="drawer_afterEditEvent"
|
||||||
|
@edit-actived="drawer_beforeEditEvent" show-footer :footer-method="drawer_footerMethod"
|
||||||
|
:footer-cell-class-name="drawer_footerCellClassName"
|
||||||
|
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: drawer_beforeEditMethod }">
|
||||||
|
<vxe-column field="name" title="抽屉" width="260"></vxe-column>
|
||||||
|
<vxe-column field="quantity" title="数量" width="200"></vxe-column>
|
||||||
|
<vxe-column field="expense" formatter="formatNumber" title="单价(免漆)" width="200"></vxe-column>
|
||||||
|
<vxe-column field="paint_expense" formatter="formatNumber" title="单价(油漆)" width="200"></vxe-column>
|
||||||
|
|
||||||
|
<vxe-column field="amount" formatter="formatNumber" title="费用(免漆)" width="200"></vxe-column>
|
||||||
|
<vxe-column field="paint_amount" formatter="formatNumber" title="费用(油漆)" width="200"></vxe-column>
|
||||||
|
|
||||||
|
</vxe-table>
|
||||||
|
|
||||||
|
</a-collapse-panel>
|
||||||
|
|
||||||
</a-collapse>
|
</a-collapse>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="groupbox">
|
<div class="groupbox" v-if="showType == '1' || showType == '2'">
|
||||||
<h3>核算表(免漆)</h3>
|
<h3>核算表(免漆)</h3>
|
||||||
<a-collapse v-model="groupbox2_activeKey">
|
<a-collapse v-model="groupbox2_activeKey">
|
||||||
<a-collapse-panel key="1" header="材料">
|
<a-collapse-panel key="1" header="材料">
|
||||||
|
|
||||||
|
<div slot="extra">
|
||||||
|
(合计)金额:{{ parseFloat(formOptions.data.material_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
<vxe-table border show-overflow keep-source ref="material_xTable" :data="material_detailsData" :keyboard-config="{
|
<vxe-table border show-overflow keep-source ref="material_xTable" :data="material_detailsData"
|
||||||
|
:keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
}" :mouse-config="{ selected: true }" @pulldownSelected="material_onPulldownSelected"
|
}" :mouse-config="{ selected: true }" @pulldownSelected="material_onPulldownSelected"
|
||||||
|
|
@ -388,6 +450,9 @@
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
<a-collapse-panel key="2" header="人工" :disabled="false">
|
<a-collapse-panel key="2" header="人工" :disabled="false">
|
||||||
|
|
||||||
|
<div slot="extra">
|
||||||
|
(合计)金额:{{ parseFloat(formOptions.data.labor_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
<vxe-table border show-overflow keep-source ref="labor_xTable" :data="labor_detailsData" :keyboard-config="{
|
<vxe-table border show-overflow keep-source ref="labor_xTable" :data="labor_detailsData" :keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
|
|
@ -436,7 +501,11 @@
|
||||||
|
|
||||||
<a-collapse-panel key="3" header="费用结算" :disabled="false">
|
<a-collapse-panel key="3" header="费用结算" :disabled="false">
|
||||||
|
|
||||||
<vxe-table border show-overflow keep-source ref="expense_xTable" :data="expense_detailsData" :keyboard-config="{
|
<div slot="extra">
|
||||||
|
(合计)金额:{{ parseFloat(formOptions.data.expense_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
|
<vxe-table border show-overflow keep-source ref="expense_xTable" :data="expense_detailsData"
|
||||||
|
:keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
}" :mouse-config="{ selected: true }" @pulldownSelected="expense_onPulldownSelected"
|
}" :mouse-config="{ selected: true }" @pulldownSelected="expense_onPulldownSelected"
|
||||||
|
|
@ -482,19 +551,21 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="groupbox">
|
<div class="groupbox" v-if="showType == '1' || showType == '3'">
|
||||||
<h3>核算表(油漆)</h3>
|
<h3>核算表(油漆)</h3>
|
||||||
<a-collapse v-model="groupbox3_activeKey">
|
<a-collapse v-model="groupbox3_activeKey">
|
||||||
<a-collapse-panel key="1" header="材料">
|
<a-collapse-panel key="1" header="材料">
|
||||||
|
|
||||||
|
<div slot="extra">
|
||||||
|
(合计)金额:{{ parseFloat(formOptions.data.paintMaterial_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
<vxe-table border show-overflow keep-source ref="paintMaterial_xTable" :data="paintMaterial_detailsData"
|
<vxe-table border show-overflow keep-source ref="paintMaterial_xTable" :data="paintMaterial_detailsData"
|
||||||
:keyboard-config="{
|
:keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
}" :mouse-config="{ selected: true }" @pulldownSelected="paintMaterial_onPulldownSelected"
|
}" :mouse-config="{ selected: true }" @pulldownSelected="paintMaterial_onPulldownSelected"
|
||||||
@popupSelected="paintMaterial_onPopupSelected" :export-config="{}" @edit-closed="paintMaterial_afterEditEvent"
|
@popupSelected="paintMaterial_onPopupSelected" :export-config="{}"
|
||||||
show-footer :footer-method="paintMaterial_footerMethod"
|
@edit-closed="paintMaterial_afterEditEvent" show-footer :footer-method="paintMaterial_footerMethod"
|
||||||
:footer-cell-class-name="paintMaterial_footerCellClassName"
|
:footer-cell-class-name="paintMaterial_footerCellClassName"
|
||||||
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintMaterial_beforeEditMethod }">
|
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintMaterial_beforeEditMethod }">
|
||||||
<vxe-column width="60" v-if="!isReadonly">
|
<vxe-column width="60" v-if="!isReadonly">
|
||||||
|
|
@ -551,6 +622,9 @@
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
<a-collapse-panel key="2" header="人工" :disabled="false">
|
<a-collapse-panel key="2" header="人工" :disabled="false">
|
||||||
|
|
||||||
|
<div slot="extra">
|
||||||
|
(合计)金额:{{ parseFloat(formOptions.data.paintLabor_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
<vxe-table border show-overflow keep-source ref="paintLabor_xTable" :data="paintLabor_detailsData"
|
<vxe-table border show-overflow keep-source ref="paintLabor_xTable" :data="paintLabor_detailsData"
|
||||||
:keyboard-config="{
|
:keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
|
|
@ -598,15 +672,17 @@
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
|
|
||||||
<a-collapse-panel key="3" header="费用结算" :disabled="false">
|
<a-collapse-panel key="3" header="费用结算" :disabled="false">
|
||||||
|
<div slot="extra">
|
||||||
|
(合计)金额:{{ parseFloat(formOptions.data.paintExpense_total_amount || 0).toFixed(2) }}
|
||||||
|
</div>
|
||||||
<vxe-table border show-overflow keep-source ref="paintExpense_xTable" :data="paintExpense_detailsData"
|
<vxe-table border show-overflow keep-source ref="paintExpense_xTable" :data="paintExpense_detailsData"
|
||||||
:keyboard-config="{
|
:keyboard-config="{
|
||||||
isArrow: true, isDel: true,
|
isArrow: true, isDel: true,
|
||||||
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
isEnter: false, isTab: true, isEdit: true, isChecked: true
|
||||||
}" :mouse-config="{ selected: true }" @pulldownSelected="paintExpense_onPulldownSelected"
|
}" :mouse-config="{ selected: true }" @pulldownSelected="paintExpense_onPulldownSelected"
|
||||||
@popupSelected="paintExpense_onPopupSelected" :export-config="{}" @edit-closed="paintExpense_afterEditEvent"
|
@popupSelected="paintExpense_onPopupSelected" :export-config="{}"
|
||||||
@edit-actived="paintExpense_beforeEditEvent" show-footer :footer-method="paintExpense_footerMethod"
|
@edit-closed="paintExpense_afterEditEvent" @edit-actived="paintExpense_beforeEditEvent" show-footer
|
||||||
:footer-cell-class-name="paintExpense_footerCellClassName"
|
:footer-method="paintExpense_footerMethod" :footer-cell-class-name="paintExpense_footerCellClassName"
|
||||||
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintExpense_beforeEditMethod }">
|
:edit-config="{ trigger: 'click', mode: 'cell', icon: 'vxe-icon-edit', showStatus: false, beforeEditMethod: paintExpense_beforeEditMethod }">
|
||||||
<vxe-column width="60" v-if="!isReadonly">
|
<vxe-column width="60" v-if="!isReadonly">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
|
|
@ -647,6 +723,24 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</a-tab-pane>
|
||||||
|
<a-tab-pane v-for="(item, index) in drawer_detailsData" :key="index" :tab="item.name">
|
||||||
|
<a-button @click="onTabEdit(index)" style="margin-bottom: 5px;">移除</a-button>
|
||||||
|
<drawer :item="item" ref="drawer" :index="index" @update="calculateAll()"></drawer>
|
||||||
|
</a-tab-pane>
|
||||||
|
</a-tabs>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="footerbar">
|
||||||
|
<a-button type="primary" @click="ok">保存</a-button>
|
||||||
|
<a-button @click="cancel">关闭</a-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<vxe-modal show-footer class-name="vxe-table--ignore-clear edit-popup-box" title="选择数据" width="800" height="600"
|
<vxe-modal show-footer class-name="vxe-table--ignore-clear edit-popup-box" title="选择数据" width="800" height="600"
|
||||||
v-model="modalVisible" @confirm="confirmSelectScheme">
|
v-model="modalVisible" @confirm="confirmSelectScheme">
|
||||||
<template #default>
|
<template #default>
|
||||||
|
|
@ -676,11 +770,13 @@ VXETable.renderer.add('EditExpressions', {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
import drawer from './drawer'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
name: 'BathroomQuotationUpdate',
|
name: 'BathroomQuotationUpdate',
|
||||||
i18n: require('./i18n'),
|
i18n: require('./i18n'),
|
||||||
components: {},
|
components: { drawer },
|
||||||
props: {
|
props: {
|
||||||
pageMode: {
|
pageMode: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
@ -698,8 +794,10 @@ export default {
|
||||||
// 当前项目ID
|
// 当前项目ID
|
||||||
currentBeid: 0,
|
currentBeid: 0,
|
||||||
|
|
||||||
|
tabKey: 'main',
|
||||||
|
showAll: false,
|
||||||
showExp: false,
|
showExp: false,
|
||||||
|
showType: "1",
|
||||||
modalVisible: false,
|
modalVisible: false,
|
||||||
scheme_loading: false, // 加载中
|
scheme_loading: false, // 加载中
|
||||||
scheme_tableData: [], // 表格数据
|
scheme_tableData: [], // 表格数据
|
||||||
|
|
@ -719,7 +817,7 @@ export default {
|
||||||
isReadonly: false,
|
isReadonly: false,
|
||||||
fittings_detailsData: [],
|
fittings_detailsData: [],
|
||||||
parts_detailsData: [],
|
parts_detailsData: [],
|
||||||
|
drawer_detailsData: [],
|
||||||
|
|
||||||
editorFittings: {
|
editorFittings: {
|
||||||
dataUrl: `${BASE_URL.BASE_URL}/BathroomFittings/v1/bathroom/fittings/list`,
|
dataUrl: `${BASE_URL.BASE_URL}/BathroomFittings/v1/bathroom/fittings/list`,
|
||||||
|
|
@ -807,7 +905,11 @@ export default {
|
||||||
item_name: "人工费", amount_formula: "{免漆人工总费用}"
|
item_name: "人工费", amount_formula: "{免漆人工总费用}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
item_name: "制,造,费,用", amount_formula: "({免漆材料总费用}+{配件总费用}+{包装总费用} + {免漆人工总费用})*0.22"
|
item_name: "抽屉费用", amount_formula: "{免漆抽屉总费用}"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
item_name: "制,造,费,用", amount_formula: "({免漆材料总费用}+{配件总费用}+{包装总费用} + {免漆人工总费用}+{免漆抽屉总费用})*0.22"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
paintExpense_detailsData: [
|
paintExpense_detailsData: [
|
||||||
|
|
@ -817,8 +919,12 @@ export default {
|
||||||
{
|
{
|
||||||
item_name: "人工费", amount_formula: "{油漆人工总费用}"
|
item_name: "人工费", amount_formula: "{油漆人工总费用}"
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
item_name: "制,造,费,用", amount_formula: "({油漆材料总费用}+{配件总费用}+{包装总费用} + {油漆人工总费用})*0.22"
|
item_name: "抽屉费用", amount_formula: "{油漆抽屉总费用}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
item_name: "制,造,费,用", amount_formula: "({油漆材料总费用}+{配件总费用}+{包装总费用} + {油漆人工总费用}+{油漆抽屉总费用})*0.22"
|
||||||
}
|
}
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
@ -970,8 +1076,8 @@ export default {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{ field: 'expense', title: '总费用(免漆)', span: 8, itemRender: { name: 'input', props: { readonly: true } } },
|
{ field: 'show_expense', title: '总费用(免漆)', span: 8, itemRender: { name: 'MkFormInputShow' } },
|
||||||
{ field: 'paint_expense', title: '总费用(油漆)', span: 8, itemRender: { name: 'input', props: { readonly: true } } },
|
{ field: 'show_paint_expense', title: '总费用(油漆)', span: 8, itemRender: { name: 'MkFormInputShow' } },
|
||||||
|
|
||||||
// =============================== 表单项 自动生成 End ===============================
|
// =============================== 表单项 自动生成 End ===============================
|
||||||
]
|
]
|
||||||
|
|
@ -1048,42 +1154,15 @@ export default {
|
||||||
this.expense_detailsData = JSON.parse(data.expense_list || "[]");
|
this.expense_detailsData = JSON.parse(data.expense_list || "[]");
|
||||||
this.paintExpense_detailsData = JSON.parse(data.paint_expenseList || "[]");
|
this.paintExpense_detailsData = JSON.parse(data.paint_expenseList || "[]");
|
||||||
|
|
||||||
|
this.drawer_detailsData = JSON.parse(data.drawer_list || "[]");
|
||||||
|
|
||||||
this.detailDataInit();
|
this.detailDataInit();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.calculateAll();
|
this.calculateAll();
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
for (let xname in this.$refs) {
|
|
||||||
let table = this.$refs[xname];
|
|
||||||
if (table.getColumns) {
|
|
||||||
let columns = table.getColumns();
|
|
||||||
let newColumns1 = [];
|
|
||||||
let newColumns2 = [];
|
|
||||||
columns.forEach(item => {
|
|
||||||
let field = item.field;
|
|
||||||
if (field && field.replace) {
|
|
||||||
field = field.replace("_formula", "");
|
|
||||||
|
|
||||||
newColumns1.push({ field: field, text: item.title })
|
|
||||||
|
|
||||||
newColumns2.push({ title: item.title, align: 'center', field: field, width: 150, checked: true })
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
console.log(xname)
|
|
||||||
console.log(JSON.stringify(newColumns1))
|
|
||||||
console.log(JSON.stringify(newColumns2))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}).catch((a) => {
|
}).catch((a) => {
|
||||||
this.$mk.error(a.data.msg);
|
this.$mk.error(a.data.msg);
|
||||||
});
|
});
|
||||||
|
|
@ -1106,6 +1185,35 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
toggleAll() {
|
||||||
|
|
||||||
|
if (this.tabKey == "main") {
|
||||||
|
this.showAll = !this.showAll;
|
||||||
|
if (this.showAll) {
|
||||||
|
this.groupbox1_activeKey = ["1", "2", "3", "4", "5"];
|
||||||
|
this.groupbox2_activeKey = ["1", "2", "3"];
|
||||||
|
this.groupbox3_activeKey = ["1", "2", "3"];
|
||||||
|
} else {
|
||||||
|
|
||||||
|
this.groupbox1_activeKey = [];
|
||||||
|
this.groupbox2_activeKey = [];
|
||||||
|
this.groupbox3_activeKey = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
let index = parseInt(this.tabKey);
|
||||||
|
|
||||||
|
let drawers = this.$refs['drawer'];
|
||||||
|
|
||||||
|
if (drawers && drawers[index] && drawers[index].toggleAll) {
|
||||||
|
drawers[index].toggleAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
print() {
|
print() {
|
||||||
|
|
||||||
let hiprint = this.$hiPrint;
|
let hiprint = this.$hiPrint;
|
||||||
|
|
@ -1147,6 +1255,23 @@ export default {
|
||||||
return data;
|
return data;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
showTypeChange(e) {
|
||||||
|
this.showType = e.target.value;
|
||||||
|
|
||||||
|
|
||||||
|
let drawers = this.$refs['drawer'];
|
||||||
|
|
||||||
|
if (drawers) {
|
||||||
|
drawers.forEach(drawer => {
|
||||||
|
if (drawer.setShowType) {
|
||||||
|
|
||||||
|
drawer.setShowType(this.showType);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
selectScheme() {
|
selectScheme() {
|
||||||
this.modalVisible = true;
|
this.modalVisible = true;
|
||||||
this.scheme_load();
|
this.scheme_load();
|
||||||
|
|
@ -1176,6 +1301,23 @@ export default {
|
||||||
paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]);
|
paintMaterialList = paintMaterialList.filter(a => a.material && a.material[0]);
|
||||||
|
|
||||||
|
|
||||||
|
if (row.type != settings.schemeType_main) { //抽屉
|
||||||
|
this.drawer_detailsData.push({
|
||||||
|
name: row.name,
|
||||||
|
quantity: 1,
|
||||||
|
fittingsList,
|
||||||
|
partsList,
|
||||||
|
packagingList,
|
||||||
|
laborList,
|
||||||
|
materialList,
|
||||||
|
paintLaborList,
|
||||||
|
paintMaterialList
|
||||||
|
});
|
||||||
|
|
||||||
|
this.$forceUpdate();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
this.addToList({ scheme_id, listData: fittingsList, detailsData: this.fittings_detailsData });
|
this.addToList({ scheme_id, listData: fittingsList, detailsData: this.fittings_detailsData });
|
||||||
this.addToList({ scheme_id, listData: partsList, detailsData: this.parts_detailsData });
|
this.addToList({ scheme_id, listData: partsList, detailsData: this.parts_detailsData });
|
||||||
this.addToList({ scheme_id, listData: packagingList, detailsData: this.packaging_detailsData });
|
this.addToList({ scheme_id, listData: packagingList, detailsData: this.packaging_detailsData });
|
||||||
|
|
@ -1188,6 +1330,9 @@ export default {
|
||||||
|
|
||||||
this.calculateAll();
|
this.calculateAll();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
this.modalVisible = false;
|
this.modalVisible = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -1339,6 +1484,10 @@ export default {
|
||||||
}
|
}
|
||||||
if (column.field == "material") {
|
if (column.field == "material") {
|
||||||
this.resetMaterial();
|
this.resetMaterial();
|
||||||
|
|
||||||
|
if(selectedData.spec){
|
||||||
|
row.height_formula = selectedData.spec;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fittings_onPopupSelected({ rows, name, params }) {
|
fittings_onPopupSelected({ rows, name, params }) {
|
||||||
|
|
@ -1572,8 +1721,7 @@ export default {
|
||||||
return 'col-blue'
|
return 'col-blue'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
material_footerMethod({ columns, data }) {
|
material_footerMethod({ columns }) {
|
||||||
console.log(data)
|
|
||||||
const sums = []
|
const sums = []
|
||||||
columns.forEach((column, columnIndex) => {
|
columns.forEach((column, columnIndex) => {
|
||||||
if (columnIndex === 0) {
|
if (columnIndex === 0) {
|
||||||
|
|
@ -1632,8 +1780,7 @@ export default {
|
||||||
return 'col-blue'
|
return 'col-blue'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
labor_footerMethod({ columns, data }) {
|
labor_footerMethod({ columns }) {
|
||||||
console.log(data)
|
|
||||||
const sums = []
|
const sums = []
|
||||||
columns.forEach((column, columnIndex) => {
|
columns.forEach((column, columnIndex) => {
|
||||||
if (columnIndex === 0) {
|
if (columnIndex === 0) {
|
||||||
|
|
@ -1690,8 +1837,7 @@ export default {
|
||||||
return 'col-blue'
|
return 'col-blue'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
expense_footerMethod({ columns, data }) {
|
expense_footerMethod({ columns }) {
|
||||||
console.log(data)
|
|
||||||
const sums = []
|
const sums = []
|
||||||
columns.forEach((column, columnIndex) => {
|
columns.forEach((column, columnIndex) => {
|
||||||
if (columnIndex === 0) {
|
if (columnIndex === 0) {
|
||||||
|
|
@ -1754,8 +1900,7 @@ export default {
|
||||||
return 'col-blue'
|
return 'col-blue'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
paintMaterial_footerMethod({ columns, data }) {
|
paintMaterial_footerMethod({ columns }) {
|
||||||
console.log(data)
|
|
||||||
const sums = []
|
const sums = []
|
||||||
columns.forEach((column, columnIndex) => {
|
columns.forEach((column, columnIndex) => {
|
||||||
if (columnIndex === 0) {
|
if (columnIndex === 0) {
|
||||||
|
|
@ -1812,8 +1957,7 @@ export default {
|
||||||
return 'col-blue'
|
return 'col-blue'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
paintLabor_footerMethod({ columns, data }) {
|
paintLabor_footerMethod({ columns }) {
|
||||||
console.log(data)
|
|
||||||
const sums = []
|
const sums = []
|
||||||
columns.forEach((column, columnIndex) => {
|
columns.forEach((column, columnIndex) => {
|
||||||
if (columnIndex === 0) {
|
if (columnIndex === 0) {
|
||||||
|
|
@ -1869,8 +2013,7 @@ export default {
|
||||||
return 'col-blue'
|
return 'col-blue'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
paintExpense_footerMethod({ columns, data }) {
|
paintExpense_footerMethod({ columns }) {
|
||||||
console.log(data)
|
|
||||||
const sums = []
|
const sums = []
|
||||||
columns.forEach((column, columnIndex) => {
|
columns.forEach((column, columnIndex) => {
|
||||||
if (columnIndex === 0) {
|
if (columnIndex === 0) {
|
||||||
|
|
@ -1889,6 +2032,69 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
drawer_onPulldownSelected({ row, name, params }) {
|
||||||
|
console.log(row, name, params);
|
||||||
|
|
||||||
|
},
|
||||||
|
drawer_onPopupSelected({ rows, name, params }) {
|
||||||
|
console.log(rows, name, params);
|
||||||
|
},
|
||||||
|
drawer_beforeEditMethod({ column, row }) {
|
||||||
|
console.log(row, column);
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
drawer_afterEditEvent({ column, row }) {
|
||||||
|
console.log(row, column);
|
||||||
|
this.calculateAll();
|
||||||
|
},
|
||||||
|
drawer_beforeEditEvent({ column, row }) {
|
||||||
|
console.log(row, column);
|
||||||
|
},
|
||||||
|
drawer_pageAdd(row) {
|
||||||
|
const $table = this.$refs.drawer_xTable
|
||||||
|
const record = {
|
||||||
|
}
|
||||||
|
if (row) {
|
||||||
|
this.drawer_detailsData.splice($table.getRowSeq(row), 0, record);
|
||||||
|
} else {
|
||||||
|
this.drawer_detailsData.push(record)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
drawer_pageDelete(row) {
|
||||||
|
const $table = this.$refs.drawer_xTable;
|
||||||
|
this.drawer_detailsData.splice($table.getRowSeq(row) - 1, 1);
|
||||||
|
},
|
||||||
|
drawer_footerCellClassName({ columnIndex }) {
|
||||||
|
if (columnIndex === 0) {
|
||||||
|
return 'col-blue'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
drawer_footerMethod({ columns, data }) {
|
||||||
|
console.log(data)
|
||||||
|
const sums = []
|
||||||
|
columns.forEach((column, columnIndex) => {
|
||||||
|
if (columnIndex === 0) {
|
||||||
|
sums.push('')
|
||||||
|
} else {
|
||||||
|
let sumCell = ''
|
||||||
|
switch (column.field) {
|
||||||
|
case 'amount':
|
||||||
|
sumCell = parseFloat(this.formOptions.data.drawer_total_amount || 0).toFixed(2)
|
||||||
|
break
|
||||||
|
case 'paint_amount':
|
||||||
|
sumCell = parseFloat(this.formOptions.data.drawer_total_paint_amount || 0).toFixed(2)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
sums.push(sumCell)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return [sums]
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
formatName(v) {
|
formatName(v) {
|
||||||
return (v || "").replace("\r", "").replace("\n", "").replace("\t", "").replace(" ", "");
|
return (v || "").replace("\r", "").replace("\n", "").replace("\t", "").replace(" ", "");
|
||||||
},
|
},
|
||||||
|
|
@ -2077,6 +2283,7 @@ export default {
|
||||||
postdata.expense = this.formOptions.data.expense_total_amount;
|
postdata.expense = this.formOptions.data.expense_total_amount;
|
||||||
postdata.paint_expense = this.formOptions.data.paintExpense_total_amount;
|
postdata.paint_expense = this.formOptions.data.paintExpense_total_amount;
|
||||||
|
|
||||||
|
|
||||||
this.formatDetailsData(postdata.fittingsList);
|
this.formatDetailsData(postdata.fittingsList);
|
||||||
this.formatDetailsData(postdata.partsList);
|
this.formatDetailsData(postdata.partsList);
|
||||||
this.formatDetailsData(postdata.packagingList);
|
this.formatDetailsData(postdata.packagingList);
|
||||||
|
|
@ -2099,6 +2306,7 @@ export default {
|
||||||
postdata.paint_expenseList = JSON.stringify(postdata.paint_expenseList);
|
postdata.paint_expenseList = JSON.stringify(postdata.paint_expenseList);
|
||||||
|
|
||||||
|
|
||||||
|
postdata.drawer_list = JSON.stringify(this.drawer_detailsData);
|
||||||
|
|
||||||
// 格式化提交的数据
|
// 格式化提交的数据
|
||||||
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
|
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
|
||||||
|
|
@ -2139,6 +2347,26 @@ export default {
|
||||||
this.back();
|
this.back();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onTabEdit(index) {
|
||||||
|
|
||||||
|
this.drawer_detailsData.splice(index, 1);
|
||||||
|
|
||||||
|
this.calculateAll();
|
||||||
|
},
|
||||||
|
tabChange() {
|
||||||
|
setTimeout(() => {
|
||||||
|
let drawers = this.$refs['drawer'];
|
||||||
|
|
||||||
|
if (drawers) {
|
||||||
|
drawers.forEach(drawer => {
|
||||||
|
if (drawer.setShowType) {
|
||||||
|
|
||||||
|
drawer.setShowType(this.showType);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
|
},
|
||||||
|
|
||||||
getExpressionItemValue({ name, row, defaultValue }) {
|
getExpressionItemValue({ name, row, defaultValue }) {
|
||||||
|
|
||||||
|
|
@ -2206,6 +2434,9 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
_calculateAll() {
|
_calculateAll() {
|
||||||
|
|
||||||
|
this.totalRows({ detailsData: this.drawer_detailsData, names: ["amount", "paint_amount"], totalPrev: "drawer" });
|
||||||
|
|
||||||
this.calculateRows({ detailsData: this.fittings_detailsData, names: ["long", "width", "height", "seal", "board_length", "paint_area"], totalPrev: "fittings" });
|
this.calculateRows({ detailsData: this.fittings_detailsData, names: ["long", "width", "height", "seal", "board_length", "paint_area"], totalPrev: "fittings" });
|
||||||
|
|
||||||
this.totalRows({ detailsData: this.fittings_detailsData, names: ["quantity"], totalPrev: "fittings" });
|
this.totalRows({ detailsData: this.fittings_detailsData, names: ["quantity"], totalPrev: "fittings" });
|
||||||
|
|
@ -2224,13 +2455,14 @@ export default {
|
||||||
this.calculateRows({ detailsData: this.expense_detailsData, names: ["amount"], totalPrev: "expense" });
|
this.calculateRows({ detailsData: this.expense_detailsData, names: ["amount"], totalPrev: "expense" });
|
||||||
this.calculateRows({ detailsData: this.paintExpense_detailsData, names: ["amount"], totalPrev: "paintExpense" });
|
this.calculateRows({ detailsData: this.paintExpense_detailsData, names: ["amount"], totalPrev: "paintExpense" });
|
||||||
|
|
||||||
|
console.log("this.formOptions.data.expense_total_amount:" + this.formOptions.data.expense_total_amount)
|
||||||
this.formOptions.data.expense = this.formOptions.data.expense_total_amount;
|
this.formOptions.data.expense = this.formOptions.data.expense_total_amount;
|
||||||
this.formOptions.data.paint_expense = this.formOptions.data.paintExpense_total_amount;
|
this.formOptions.data.paint_expense = this.formOptions.data.paintExpense_total_amount;
|
||||||
|
|
||||||
this.formOptions.data.expense = parseFloat(this.formOptions.data.expense || 0).toFixed(2);
|
this.formOptions.data.show_expense = parseFloat(this.formOptions.data.expense || 0).toFixed(2);
|
||||||
this.formOptions.data.paint_expense = parseFloat(this.formOptions.data.paint_expense || 0).toFixed(2);
|
this.formOptions.data.show_paint_expense = parseFloat(this.formOptions.data.paint_expense || 0).toFixed(2);
|
||||||
|
|
||||||
|
this.formOptions.data = JSON.parse(JSON.stringify(this.formOptions.data))
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -584,29 +584,29 @@ export default {
|
||||||
|
|
||||||
{
|
{
|
||||||
title: '左侧',
|
title: '左侧',
|
||||||
span: 18,
|
span: 16,
|
||||||
children: [
|
children: [
|
||||||
{ field: 'name', title: '设计方案名称', span: 12, itemRender: { name: '$input' } },
|
{ field: 'name', title: '设计方案名称', span: 24, itemRender: { name: '$input' } },
|
||||||
{ field: 'code', title: '编码', span: 12, itemRender: { name: '$input' } },
|
{ field: 'code', title: '编码', span: 24, itemRender: { name: '$input' } },
|
||||||
{ field: 'model', title: '型号', span: 12, itemRender: { name: '$input' } },
|
{ field: 'model', title: '型号', span: 24, itemRender: { name: '$input' } },
|
||||||
{ field: 'type', title: '类型', span: 12, itemRender: { name: '$radio', options: settings.options_schemeType } },
|
{ field: 'type', title: '类型', span: 24, itemRender: { name: '$radio', options: settings.options_schemeType } },
|
||||||
|
|
||||||
|
|
||||||
{ field: 'description', title: '描述', span: 24, itemRender: { name: '$input' } },
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '右侧',
|
title: '右侧',
|
||||||
span: 6,
|
span: 8,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
field: 'image', title: '设计图', span: 12, itemRender: {
|
field: 'image', span: 24, itemRender: {
|
||||||
name: 'MkFormCropper', props: {
|
name: 'MkFormCropper', props: {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{ field: 'description', title: '描述', span: 24, itemRender: { name: '$input' } },
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
@ -782,6 +782,11 @@ export default {
|
||||||
}
|
}
|
||||||
if (column.field == "material") {
|
if (column.field == "material") {
|
||||||
this.resetMaterial();
|
this.resetMaterial();
|
||||||
|
|
||||||
|
if(selectedData.spec){
|
||||||
|
row.height_formula = selectedData.spec;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
fittings_onPopupSelected({ rows, name, params }) {
|
fittings_onPopupSelected({ rows, name, params }) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,461 @@
|
||||||
|
<template>
|
||||||
|
<div class="page-body">
|
||||||
|
|
||||||
|
<a-row type="flex">
|
||||||
|
<a-col :flex="$mk.config.ui.searchFlex">
|
||||||
|
<!-- 搜索区 -->
|
||||||
|
<vxe-form :data="searchFormData" :items="searchFormItems" titleColon @submit="onSearch">
|
||||||
|
<template #date="{}">
|
||||||
|
<a-form-item label="创建时间" :style="{ display: 'inline-block', width: 120 }">
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item :style="{ display: 'inline-block', width: 'calc(100% - 120px )' }">
|
||||||
|
<a-range-picker @change="onDateChange" />
|
||||||
|
</a-form-item>
|
||||||
|
</template>
|
||||||
|
</vxe-form>
|
||||||
|
</a-col>
|
||||||
|
<a-col :flex="$mk.config.ui.toolbarFlex">
|
||||||
|
<!-- 工具条 -->
|
||||||
|
<mk-toolbar @toolbarClick="toolbarClick"></mk-toolbar>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<vxe-toolbar ref="xToolbar" custom>
|
||||||
|
<template #buttons>
|
||||||
|
<a-button type="primary" icon="delete" @click="pageDelete()">批量删除</a-button>
|
||||||
|
</template>
|
||||||
|
</vxe-toolbar>
|
||||||
|
<!-- 表格区 -->
|
||||||
|
<div class="gridPanel">
|
||||||
|
<vxe-grid ref='xGrid' v-bind="gridOptions">
|
||||||
|
|
||||||
|
<!-- =============================== 表格列 自动生成 Start =============================== -->
|
||||||
|
|
||||||
|
<!-- =============================== 表格列 自动生成 End =============================== -->
|
||||||
|
|
||||||
|
<template #op="{ row }">
|
||||||
|
<div class="oplinks">
|
||||||
|
<a @click.stop="pageEdit(row)" title="编辑"><a-icon type="edit" /></a>
|
||||||
|
<a @click.stop="pageDelete(row)" title="删除"><a-icon type="delete" /></a>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #image="{ row }">
|
||||||
|
<img v-if="row.image" :src="row.image" style="width: 100px;">
|
||||||
|
<span v-else>无</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</vxe-grid>
|
||||||
|
|
||||||
|
<a-row style="background: white;">
|
||||||
|
<a-col style="margin-bottom: 8px;" v-for="item in [1,2,3,4,4,4,4,4]" :key="item" :span="6">
|
||||||
|
<a-card hoverable style="width: 300px">
|
||||||
|
<img
|
||||||
|
slot="cover"
|
||||||
|
alt="example"
|
||||||
|
src="https://gw.alipayobjects.com/zos/rmsportal/JiqGstEfoWAOHiTxclqi.png"
|
||||||
|
/>
|
||||||
|
<template slot="actions" class="ant-card-actions">
|
||||||
|
<a-icon key="setting" type="setting" />
|
||||||
|
<a-icon key="edit" type="edit" />
|
||||||
|
<a-icon key="ellipsis" type="ellipsis" />
|
||||||
|
</template>
|
||||||
|
<a-card-meta title="Card title" description="This is the description">
|
||||||
|
</a-card-meta>
|
||||||
|
</a-card>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-pagination v-model="currentPageIndex" :total="50" show-less-items />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import BASE_URL from '@/services/Middle/bathroom/BathroomScheme/api.js';
|
||||||
|
const settings = require('../../basic/settings.js');
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'BathroomSchemeList',
|
||||||
|
i18n: require('./i18n'), // 国际化
|
||||||
|
props: {
|
||||||
|
pageMode: {
|
||||||
|
type: String,
|
||||||
|
default: "edit"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
|
||||||
|
const listFieldName = 'BathroomScheme';
|
||||||
|
// 页面数据
|
||||||
|
var pageData = { // 页面数据变量
|
||||||
|
|
||||||
|
keyName: 'id', // 主键字段名
|
||||||
|
|
||||||
|
currentPageIndex:1,
|
||||||
|
|
||||||
|
// 接口动作
|
||||||
|
actions: { // Api 接口地址
|
||||||
|
// =============================== 接口地址 自动生成 Start ===============================
|
||||||
|
BathroomSchemeList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/list`, // 设计方案列表
|
||||||
|
BathroomSchemeDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/detail`, // 设计方案详情
|
||||||
|
BathroomSchemeCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/create`, // 创建设计方案
|
||||||
|
BathroomSchemeUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/update`, // 更新设计方案
|
||||||
|
BathroomSchemeDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/detele`, // 删除设计方案
|
||||||
|
BathroomSchemeBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/batchDelete`, // 批量删除设计方案
|
||||||
|
BathroomSchemeBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/batchUpdate`, // 批量更新设计方案
|
||||||
|
BathroomSchemeBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/batchCreate`, // 批量创建设计方案
|
||||||
|
BathroomSchemeExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/export/excel`, // 导出设计方案数据到EXCEL
|
||||||
|
BathroomSchemeImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/import/excel`, // 批量导入EXCEL设计方案数据
|
||||||
|
BathroomSchemeFittingsList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/list`, // 报价单部件列表
|
||||||
|
BathroomSchemeFittingsDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/detail`, // 报价单部件详情
|
||||||
|
BathroomSchemeFittingsCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/create`, // 创建报价单部件
|
||||||
|
BathroomSchemeFittingsUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/update`, // 更新报价单部件
|
||||||
|
BathroomSchemeFittingsDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/detele`, // 删除报价单部件
|
||||||
|
BathroomSchemeFittingsBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/batchDelete`, // 批量删除报价单部件
|
||||||
|
BathroomSchemeFittingsBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/batchUpdate`, // 批量更新报价单部件
|
||||||
|
BathroomSchemeFittingsBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/batchCreate`, // 批量创建报价单部件
|
||||||
|
BathroomSchemeFittingsExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/export/excel`, // 导出报价单部件数据到EXCEL
|
||||||
|
BathroomSchemeFittingsImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/fittings/import/excel`, // 批量导入EXCEL报价单部件数据
|
||||||
|
BathroomSchemePartsList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/list`, // 报价单配件列表
|
||||||
|
BathroomSchemePartsDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/detail`, // 报价单配件详情
|
||||||
|
BathroomSchemePartsCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/create`, // 创建报价单配件
|
||||||
|
BathroomSchemePartsUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/update`, // 更新报价单配件
|
||||||
|
BathroomSchemePartsDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/detele`, // 删除报价单配件
|
||||||
|
BathroomSchemePartsBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/batchDelete`, // 批量删除报价单配件
|
||||||
|
BathroomSchemePartsBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/batchUpdate`, // 批量更新报价单配件
|
||||||
|
BathroomSchemePartsBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/batchCreate`, // 批量创建报价单配件
|
||||||
|
BathroomSchemePartsExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/export/excel`, // 导出报价单配件数据到EXCEL
|
||||||
|
BathroomSchemePartsImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/parts/import/excel`, // 批量导入EXCEL报价单配件数据
|
||||||
|
BathroomSchemeMaterialList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/list`, // 报价单材料列表
|
||||||
|
BathroomSchemeMaterialDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/detail`, // 报价单材料详情
|
||||||
|
BathroomSchemeMaterialCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/create`, // 创建报价单材料
|
||||||
|
BathroomSchemeMaterialUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/update`, // 更新报价单材料
|
||||||
|
BathroomSchemeMaterialDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/detele`, // 删除报价单材料
|
||||||
|
BathroomSchemeMaterialBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/batchDelete`, // 批量删除报价单材料
|
||||||
|
BathroomSchemeMaterialBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/batchUpdate`, // 批量更新报价单材料
|
||||||
|
BathroomSchemeMaterialBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/batchCreate`, // 批量创建报价单材料
|
||||||
|
BathroomSchemeMaterialExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/export/excel`, // 导出报价单材料数据到EXCEL
|
||||||
|
BathroomSchemeMaterialImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/material/import/excel`, // 批量导入EXCEL报价单材料数据
|
||||||
|
BathroomSchemeLaborList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/list`, // 报价单人工费用列表
|
||||||
|
BathroomSchemeLaborDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/detail`, // 报价单人工费用详情
|
||||||
|
BathroomSchemeLaborCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/create`, // 创建报价单人工费用
|
||||||
|
BathroomSchemeLaborUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/update`, // 更新报价单人工费用
|
||||||
|
BathroomSchemeLaborDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/detele`, // 删除报价单人工费用
|
||||||
|
BathroomSchemeLaborBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/batchDelete`, // 批量删除报价单人工费用
|
||||||
|
BathroomSchemeLaborBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/batchUpdate`, // 批量更新报价单人工费用
|
||||||
|
BathroomSchemeLaborBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/batchCreate`, // 批量创建报价单人工费用
|
||||||
|
BathroomSchemeLaborExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/export/excel`, // 导出报价单人工费用数据到EXCEL
|
||||||
|
BathroomSchemeLaborImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/labor/import/excel`, // 批量导入EXCEL报价单人工费用数据
|
||||||
|
BathroomSchemeProcessList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/list`, // 报价单工序列表
|
||||||
|
BathroomSchemeProcessDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/detail`, // 报价单工序详情
|
||||||
|
BathroomSchemeProcessCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/create`, // 创建报价单工序
|
||||||
|
BathroomSchemeProcessUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/update`, // 更新报价单工序
|
||||||
|
BathroomSchemeProcessDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/detele`, // 删除报价单工序
|
||||||
|
BathroomSchemeProcessBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/batchDelete`, // 批量删除报价单工序
|
||||||
|
BathroomSchemeProcessBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/batchUpdate`, // 批量更新报价单工序
|
||||||
|
BathroomSchemeProcessBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/batchCreate`, // 批量创建报价单工序
|
||||||
|
BathroomSchemeProcessExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/export/excel`, // 导出报价单工序数据到EXCEL
|
||||||
|
BathroomSchemeProcessImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/process/import/excel`, // 批量导入EXCEL报价单工序数据
|
||||||
|
BathroomSchemePackagingList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/list`, // 包装材料列表
|
||||||
|
BathroomSchemePackagingDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/detail`, // 包装材料详情
|
||||||
|
BathroomSchemePackagingCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/create`, // 创建包装材料
|
||||||
|
BathroomSchemePackagingUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/update`, // 更新包装材料
|
||||||
|
BathroomSchemePackagingDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/detele`, // 删除包装材料
|
||||||
|
BathroomSchemePackagingBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/batchDelete`, // 批量删除包装材料
|
||||||
|
BathroomSchemePackagingBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/batchUpdate`, // 批量更新包装材料
|
||||||
|
BathroomSchemePackagingBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/batchCreate`, // 批量创建包装材料
|
||||||
|
BathroomSchemePackagingExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/export/excel`, // 导出包装材料数据到EXCEL
|
||||||
|
BathroomSchemePackagingImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/packaging/import/excel`, // 批量导入EXCEL包装材料数据
|
||||||
|
BathroomSchemeOutsourcingList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/list`, // 外购产品列表
|
||||||
|
BathroomSchemeOutsourcingDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/detail`, // 外购产品详情
|
||||||
|
BathroomSchemeOutsourcingCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/create`, // 创建外购产品
|
||||||
|
BathroomSchemeOutsourcingUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/update`, // 更新外购产品
|
||||||
|
BathroomSchemeOutsourcingDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/detele`, // 删除外购产品
|
||||||
|
BathroomSchemeOutsourcingBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/batchDelete`, // 批量删除外购产品
|
||||||
|
BathroomSchemeOutsourcingBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/batchUpdate`, // 批量更新外购产品
|
||||||
|
BathroomSchemeOutsourcingBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/batchCreate`, // 批量创建外购产品
|
||||||
|
BathroomSchemeOutsourcingExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/export/excel`, // 导出外购产品数据到EXCEL
|
||||||
|
BathroomSchemeOutsourcingImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/outsourcing/import/excel`, // 批量导入EXCEL外购产品数据
|
||||||
|
BathroomSchemePaintList: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/list`, // 油漆列表
|
||||||
|
BathroomSchemePaintDetail: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/detail`, // 油漆详情
|
||||||
|
BathroomSchemePaintCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/create`, // 创建油漆
|
||||||
|
BathroomSchemePaintUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/update`, // 更新油漆
|
||||||
|
BathroomSchemePaintDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/detele`, // 删除油漆
|
||||||
|
BathroomSchemePaintBatchDelete: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/batchDelete`, // 批量删除油漆
|
||||||
|
BathroomSchemePaintBatchUpdate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/batchUpdate`, // 批量更新油漆
|
||||||
|
BathroomSchemePaintBatchCreate: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/batchCreate`, // 批量创建油漆
|
||||||
|
BathroomSchemePaintExportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/export/excel`, // 导出油漆数据到EXCEL
|
||||||
|
BathroomSchemePaintImportExcel: `${BASE_URL.BASE_URL}/BathroomScheme/v1/bathroom/scheme/paint/import/excel`, // 批量导入EXCEL油漆数据
|
||||||
|
|
||||||
|
// =============================== 接口地址 自动生成 End ===============================
|
||||||
|
},
|
||||||
|
|
||||||
|
start_time: 0, // 开始时间
|
||||||
|
end_time: 0, // 结束时间
|
||||||
|
|
||||||
|
|
||||||
|
//搜索区
|
||||||
|
searchFormData: {
|
||||||
|
title: '',
|
||||||
|
desc: '',
|
||||||
|
},
|
||||||
|
// 搜索区配置
|
||||||
|
searchRules: [
|
||||||
|
{ key: "title", mode: "like" },
|
||||||
|
{ key: "desc", mode: "like" }
|
||||||
|
],
|
||||||
|
//搜索区
|
||||||
|
searchFormItems: [ // 子项
|
||||||
|
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
|
||||||
|
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
|
||||||
|
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
||||||
|
{
|
||||||
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
|
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, // 搜索按钮
|
||||||
|
{ props: { type: 'reset', content: '重置' } }]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
|
//数据区
|
||||||
|
gridOptions: { // 表格配置
|
||||||
|
height: '100%', // 表格高度 100% 会自动撑满父容器
|
||||||
|
stripe: true, // 启用斑马纹
|
||||||
|
id: 'datagrid_1', // 表格唯一标识
|
||||||
|
|
||||||
|
// 接口获取数据
|
||||||
|
proxyConfig: { // 配置代理
|
||||||
|
sort: true, // 启用排序代理,当点击排序时会自动触发 query 行为
|
||||||
|
filter: true, // 启用筛选代理,当点击筛选时会自动触发 query 行为
|
||||||
|
props: {
|
||||||
|
result: listFieldName, // 配置响应结果列表字段
|
||||||
|
total: 'total' // 配置响应结果总页数字段
|
||||||
|
},
|
||||||
|
// 接收Promise
|
||||||
|
ajax: {
|
||||||
|
// 当点击工具栏查询按钮或者手动提交指令 query或reload 时会被触发
|
||||||
|
query: (options) => { // options 为当前表格的配置项
|
||||||
|
const { page, sorts } = options; // 获取当前页码、每页条数、排序信息
|
||||||
|
var params = {}; // 定义请求参数
|
||||||
|
params.page = page.currentPage; // 当前页码
|
||||||
|
params.limit = page.pageSize; // 每页条数
|
||||||
|
params.order_bys = []; // 排序信息
|
||||||
|
params.search_rules = this.getSearchParms(); // 搜索信息
|
||||||
|
if (sorts) { // 如果有排序信息
|
||||||
|
sorts.forEach((v) => { // 遍历排序信息
|
||||||
|
params.order_bys.push({ // 添加排序信息
|
||||||
|
column: v.property, // 字段名
|
||||||
|
order: v.order // 排序方式
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return this.loadData({ params }); // 返回请求结果
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// 表格列配置
|
||||||
|
columns: [
|
||||||
|
{ type: 'checkbox', width: 50 }, // 多选框
|
||||||
|
|
||||||
|
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
||||||
|
{ type: 'seq', width: 30 }, // 序号
|
||||||
|
|
||||||
|
|
||||||
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
|
|
||||||
|
{ field: 'type', sortable: true, title: '类型', params:settings.options_schemeType, formatter: 'formatEnum', width: 250 }, // 类型:1.主柜,2.抽屉
|
||||||
|
{ field: 'name', sortable: true, title: '设计方案名称', width: 250 }, // 设计方案名称
|
||||||
|
//{ field: 'code', sortable: true, title: '编码', width: 250 }, // 编码
|
||||||
|
{ field: 'model', sortable: true, title: '型号', width: 250 }, // 型号
|
||||||
|
//{ field: 'description', sortable: true, title: '描述', width: 250 }, // 描述
|
||||||
|
{ field: 'image', sortable: true, title: '主图', width: 250 , slots: { default: 'image' } }, // 图片
|
||||||
|
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
||||||
|
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
||||||
|
|
||||||
|
// =============================== 表格列 自动生成 Start ===============================
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
pageData.actions.getList = pageData.actions.BathroomSchemeList;
|
||||||
|
pageData.actions.delete = pageData.actions.BathroomSchemeBatchDelete;
|
||||||
|
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); // 合并表格数据
|
||||||
|
|
||||||
|
return pageData; // 返回页面数据
|
||||||
|
},
|
||||||
|
|
||||||
|
// 计算属性
|
||||||
|
computed: {
|
||||||
|
// 页面描述
|
||||||
|
desc() {
|
||||||
|
return this.$t('pageDesc')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 创建完成
|
||||||
|
created() {
|
||||||
|
this.$nextTick(() => { // 在下次 DOM 更新循环结束之后执行延迟回调
|
||||||
|
// 将表格和工具栏进行关联
|
||||||
|
this.$refs.xGrid.connect(this.$refs.xToolbar) // 将表格和工具栏进行关联
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 挂载完成
|
||||||
|
onLoad() {
|
||||||
|
|
||||||
|
},
|
||||||
|
// 动作
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
// =============================== 基于status进行开关 自动生成 Start ===============================
|
||||||
|
|
||||||
|
// =============================== 基于status进行开关 自动生成 End ===============================
|
||||||
|
|
||||||
|
// 修改日期
|
||||||
|
onDateChange(date) { // 日期选择器事件
|
||||||
|
if (date && date.length) { // 如果有值
|
||||||
|
this.start_time = parseInt(date[0]._d.getTime() / 1000); // 将日期转换为时间戳
|
||||||
|
this.end_time = parseInt(date[1]._d.getTime() / 1000); // 将日期转换为时间戳
|
||||||
|
} else { // 如果没有值
|
||||||
|
this.start_time = 0; // 将日期转换为时间戳
|
||||||
|
this.end_time = 0; // 将日期转换为时间戳
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 获取搜索参数
|
||||||
|
getSearchParms() { // 获取搜索参数
|
||||||
|
var rules = []; // 定义搜索参数
|
||||||
|
let findMode = k => { // 查找搜索模式
|
||||||
|
for (let i in this.searchRules) { // 遍历搜索规则
|
||||||
|
if (this.searchRules[i].key == k) return this.searchRules[i].mode; // 如果找到了就返回搜索模式
|
||||||
|
}
|
||||||
|
return "equal"; // 如果没有找到就返回等于
|
||||||
|
};
|
||||||
|
|
||||||
|
for (let key in this.searchFormData) { // 遍历搜索表单数据
|
||||||
|
let value = this.searchFormData[key]; // 获取值
|
||||||
|
if (value) { // 如果有值
|
||||||
|
let mode = findMode(key); // 获取搜索模式
|
||||||
|
if (mode == "like") { // 如果是模糊搜索
|
||||||
|
value = "%" + value + "%"; // 如果是模糊搜索就在两边加上%
|
||||||
|
}
|
||||||
|
rules.push({ // 添加搜索参数
|
||||||
|
column: key, // 字段名
|
||||||
|
mode: mode, // 搜索模式
|
||||||
|
value: value // 值
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rules; // 返回搜索参数
|
||||||
|
},
|
||||||
|
// 获取选中行
|
||||||
|
getSelectdRow() { // 获取选中行
|
||||||
|
let row = this.$refs.xGrid.getCurrentRecord(); // 获取当前行
|
||||||
|
if (!row) { // 如果没有选中行
|
||||||
|
let rows = this.$refs.xGrid.getCheckboxRecords(); // 获取选中行
|
||||||
|
if (rows && rows.length) { row = rows[0]; } // 如果有选中行就取第一行
|
||||||
|
}
|
||||||
|
return row; // 返回选中行
|
||||||
|
},
|
||||||
|
// 加载数据
|
||||||
|
loadData({ params }) {
|
||||||
|
params.start_time = this.start_time; // 开始时间
|
||||||
|
params.end_time = this.end_time; // 结束时间
|
||||||
|
this.$mk.getPagedData({ url: this.actions.getList, data: params }).then(r=>{
|
||||||
|
|
||||||
|
console.log(r);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 工具栏点击事件 add / log / setting
|
||||||
|
toolbarClick(e) {
|
||||||
|
if (e.name == "add") { // 如果是添加
|
||||||
|
this.$openPage("/BathroomScheme/BathroomSchemeAdd"); // 打开页面
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 编辑
|
||||||
|
pageEdit(row) {
|
||||||
|
if (!row) { // 如果没有选中行
|
||||||
|
this.$mk.msg("请选择行"); // 提示
|
||||||
|
return; // 返回
|
||||||
|
}
|
||||||
|
this.$openPage("/BathroomScheme/BathroomSchemeUpdate/" + row[this.keyName]); // 打开页面
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
pageDelete(row) {
|
||||||
|
let rows = row ? [row] : this.$refs.xGrid.getCheckboxRecords(); // 获取选中行
|
||||||
|
let ids = []; // 定义id数组
|
||||||
|
rows.forEach((row) => { // 遍历选中行
|
||||||
|
ids.push(row[this.keyName]); // 将选择行的id添加到id数组
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!ids.length) { // 如果没有选中行
|
||||||
|
this.$mk.error("请选择行"); // 提示
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.$mk.confirm('您确定要删除吗?').then(type => { // 确认删除
|
||||||
|
if (type == 'confirm') { // 如果确认删除
|
||||||
|
this.$mk.post({
|
||||||
|
url: this.actions.delete, // 请求删除数据地址
|
||||||
|
loading: "删除中...", // 加载提示
|
||||||
|
data: {
|
||||||
|
ids: ids // 传递id数组
|
||||||
|
},
|
||||||
|
useBigInt : true
|
||||||
|
}).then(() => { // 成功
|
||||||
|
this.$mk.success("删除成功"); // 提示成功
|
||||||
|
this.onSearch(); // 重新加载数据
|
||||||
|
}).catch((a) => { // 失败
|
||||||
|
this.$mk.error(a.data.msg); // 提示错误信息
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 搜索
|
||||||
|
onSearch() {
|
||||||
|
this.$refs.xGrid.commitProxy('query') // 提交搜索
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
// 监听属性
|
||||||
|
watch: {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
.page-body {
|
||||||
|
padding: 30px;
|
||||||
|
background: @base-bg-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gridPanel {
|
||||||
|
height: calc(100vh - 400px);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.oplinks svg {
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
margin: 0 5px 0 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -23,27 +23,26 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<vxe-toolbar ref="xToolbar" custom>
|
|
||||||
<template #buttons>
|
|
||||||
<a-button type="primary" icon="delete" @click="pageDelete()">批量删除</a-button>
|
|
||||||
</template>
|
|
||||||
</vxe-toolbar>
|
|
||||||
<!-- 表格区 -->
|
<!-- 表格区 -->
|
||||||
<div class="gridPanel">
|
<div class="cardPanel">
|
||||||
<vxe-grid ref='xGrid' v-bind="gridOptions">
|
|
||||||
|
|
||||||
<!-- =============================== 表格列 自动生成 Start =============================== -->
|
<a-row style="background: white;">
|
||||||
|
<a-col style="margin-bottom: 12px;margin-right: 12px;" v-for="(item,index) in listData" :key="index" :span="5">
|
||||||
<!-- =============================== 表格列 自动生成 End =============================== -->
|
<a-card hoverable>
|
||||||
|
<img class="scheme-img" slot="cover" alt="example" :src="item.image || defaultImage" />
|
||||||
<template #op="{ row }">
|
<template slot="actions" class="ant-card-actions">
|
||||||
<div class="oplinks">
|
<a-icon key="edit" type="edit" @click="pageEdit(item)" />
|
||||||
<a @click.stop="pageEdit(row)" title="编辑"><a-icon type="edit" /></a>
|
<a-icon key="delete" type="delete" @click="pageDelete(item)" />
|
||||||
<a @click.stop="pageDelete(row)" title="删除"><a-icon type="delete" /></a>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
<a-card-meta :title="item.name" :description="item.description">
|
||||||
|
</a-card-meta>
|
||||||
|
</a-card>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
<a-pagination :show-total="total => `总 ${total} 条记录`" v-model="currentPageIndex" :pageSize="pageSize" :total="listTotal" @change="pageChange" show-less-items />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</vxe-grid>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -52,7 +51,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import BASE_URL from '@/services/Middle/bathroom/BathroomScheme/api.js';
|
import BASE_URL from '@/services/Middle/bathroom/BathroomScheme/api.js';
|
||||||
const settings = require('../../basic/settings.js');
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'BathroomSchemeList',
|
name: 'BathroomSchemeList',
|
||||||
|
|
@ -65,12 +63,15 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
||||||
const listFieldName = 'BathroomScheme';
|
|
||||||
// 页面数据
|
// 页面数据
|
||||||
var pageData = { // 页面数据变量
|
var pageData = { // 页面数据变量
|
||||||
|
|
||||||
keyName: 'id', // 主键字段名
|
keyName: 'id', // 主键字段名
|
||||||
|
defaultImage:"http://zhengjiguangdong.oss-cn-beijing.aliyuncs.com/2023/16811166643739833.png",
|
||||||
|
currentPageIndex: 1,
|
||||||
|
pageSize: 8,
|
||||||
|
listData:[],
|
||||||
|
listTotal:0,
|
||||||
|
|
||||||
// 接口动作
|
// 接口动作
|
||||||
actions: { // Api 接口地址
|
actions: { // Api 接口地址
|
||||||
|
|
@ -180,13 +181,12 @@ export default {
|
||||||
},
|
},
|
||||||
// 搜索区配置
|
// 搜索区配置
|
||||||
searchRules: [
|
searchRules: [
|
||||||
{ key: "title", mode: "like" },
|
{ key: "name", mode: "like" },
|
||||||
{ key: "desc", mode: "like" }
|
{ key: "desc", mode: "like" }
|
||||||
],
|
],
|
||||||
//搜索区
|
//搜索区
|
||||||
searchFormItems: [ // 子项
|
searchFormItems: [ // 子项
|
||||||
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
|
{ field: 'name', title: '设计方案名', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入设计方案名' } } },
|
||||||
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
|
|
||||||
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
{ span: 8, slots: { default: 'date' } }, // 自定义列
|
||||||
{
|
{
|
||||||
align: 'right', span: 4, itemRender: { // 按钮列
|
align: 'right', span: 4, itemRender: { // 按钮列
|
||||||
|
|
@ -197,73 +197,10 @@ export default {
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
||||||
//数据区
|
|
||||||
gridOptions: { // 表格配置
|
|
||||||
height: '100%', // 表格高度 100% 会自动撑满父容器
|
|
||||||
stripe: true, // 启用斑马纹
|
|
||||||
id: 'datagrid_1', // 表格唯一标识
|
|
||||||
|
|
||||||
// 接口获取数据
|
|
||||||
proxyConfig: { // 配置代理
|
|
||||||
sort: true, // 启用排序代理,当点击排序时会自动触发 query 行为
|
|
||||||
filter: true, // 启用筛选代理,当点击筛选时会自动触发 query 行为
|
|
||||||
props: {
|
|
||||||
result: listFieldName, // 配置响应结果列表字段
|
|
||||||
total: 'total' // 配置响应结果总页数字段
|
|
||||||
},
|
|
||||||
// 接收Promise
|
|
||||||
ajax: {
|
|
||||||
// 当点击工具栏查询按钮或者手动提交指令 query或reload 时会被触发
|
|
||||||
query: (options) => { // options 为当前表格的配置项
|
|
||||||
const { page, sorts } = options; // 获取当前页码、每页条数、排序信息
|
|
||||||
var params = {}; // 定义请求参数
|
|
||||||
params.page = page.currentPage; // 当前页码
|
|
||||||
params.limit = page.pageSize; // 每页条数
|
|
||||||
params.order_bys = []; // 排序信息
|
|
||||||
params.search_rules = this.getSearchParms(); // 搜索信息
|
|
||||||
if (sorts) { // 如果有排序信息
|
|
||||||
sorts.forEach((v) => { // 遍历排序信息
|
|
||||||
params.order_bys.push({ // 添加排序信息
|
|
||||||
column: v.property, // 字段名
|
|
||||||
order: v.order // 排序方式
|
|
||||||
})
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return this.loadData({ params }); // 返回请求结果
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
// 表格列配置
|
|
||||||
columns: [
|
|
||||||
{ type: 'checkbox', width: 50 }, // 多选框
|
|
||||||
|
|
||||||
{ title: '操作', slots: { default: 'op' }, width: 120 },
|
|
||||||
{ type: 'seq', width: 30 }, // 序号
|
|
||||||
|
|
||||||
|
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
|
||||||
|
|
||||||
{ field: 'type', sortable: true, title: '类型', params:settings.options_schemeType, formatter: 'formatEnum', width: 250 }, // 类型:1.主柜,2.抽屉
|
|
||||||
{ field: 'name', sortable: true, title: '设计方案名称', width: 250 }, // 设计方案名称
|
|
||||||
//{ field: 'code', sortable: true, title: '编码', width: 250 }, // 编码
|
|
||||||
{ field: 'model', sortable: true, title: '型号', width: 250 }, // 型号
|
|
||||||
//{ field: 'description', sortable: true, title: '描述', width: 250 }, // 描述
|
|
||||||
//{ field: 'image', sortable: true, title: '图片', width: 250 , formatter:"formatImage" }, // 图片
|
|
||||||
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, // 创建时间
|
|
||||||
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, // 更新时间
|
|
||||||
|
|
||||||
// =============================== 表格列 自动生成 Start ===============================
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
pageData.actions.getList = pageData.actions.BathroomSchemeList;
|
pageData.actions.getList = pageData.actions.BathroomSchemeList;
|
||||||
pageData.actions.delete = pageData.actions.BathroomSchemeBatchDelete;
|
pageData.actions.delete = pageData.actions.BathroomSchemeBatchDelete;
|
||||||
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); // 合并表格数据
|
|
||||||
|
|
||||||
return pageData; // 返回页面数据
|
return pageData; // 返回页面数据
|
||||||
},
|
},
|
||||||
|
|
@ -278,22 +215,20 @@ export default {
|
||||||
|
|
||||||
// 创建完成
|
// 创建完成
|
||||||
created() {
|
created() {
|
||||||
this.$nextTick(() => { // 在下次 DOM 更新循环结束之后执行延迟回调
|
|
||||||
// 将表格和工具栏进行关联
|
|
||||||
this.$refs.xGrid.connect(this.$refs.xToolbar) // 将表格和工具栏进行关联
|
this.loadData();
|
||||||
});
|
|
||||||
},
|
},
|
||||||
// 挂载完成
|
// 挂载完成
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
||||||
},
|
},
|
||||||
// 动作
|
// 动作
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
|
pageChange(){
|
||||||
// =============================== 基于status进行开关 自动生成 Start ===============================
|
this.loadData();
|
||||||
|
},
|
||||||
// =============================== 基于status进行开关 自动生成 End ===============================
|
|
||||||
|
|
||||||
// 修改日期
|
// 修改日期
|
||||||
onDateChange(date) { // 日期选择器事件
|
onDateChange(date) { // 日期选择器事件
|
||||||
|
|
@ -340,13 +275,29 @@ export default {
|
||||||
}
|
}
|
||||||
return row; // 返回选中行
|
return row; // 返回选中行
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
loadData({ params }) {
|
loadData() {
|
||||||
|
var params = {}; // 定义请求参数
|
||||||
|
params.page = this.currentPageIndex;
|
||||||
|
params.limit = this.pageSize; // 每页条数
|
||||||
|
params.order_bys = []; // 排序信息
|
||||||
|
params.search_rules = this.getSearchParms(); // 搜索信息
|
||||||
|
|
||||||
params.start_time = this.start_time; // 开始时间
|
params.start_time = this.start_time; // 开始时间
|
||||||
params.end_time = this.end_time; // 结束时间
|
params.end_time = this.end_time; // 结束时间
|
||||||
return this.$mk.getPagedData({ url: this.actions.getList, data: params }); // 获取分页数据
|
this.$mk.getPagedData({ url: this.actions.getList, data: params }).then(r => {
|
||||||
|
|
||||||
|
this.listData = r.BathroomScheme;
|
||||||
|
this.listTotal = r.total;
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 工具栏点击事件 add / log / setting
|
// 工具栏点击事件 add / log / setting
|
||||||
toolbarClick(e) {
|
toolbarClick(e) {
|
||||||
if (e.name == "add") { // 如果是添加
|
if (e.name == "add") { // 如果是添加
|
||||||
|
|
@ -365,7 +316,7 @@ export default {
|
||||||
|
|
||||||
// 删除
|
// 删除
|
||||||
pageDelete(row) {
|
pageDelete(row) {
|
||||||
let rows = row ? [row] : this.$refs.xGrid.getCheckboxRecords(); // 获取选中行
|
let rows =[row]; // 获取选中行
|
||||||
let ids = []; // 定义id数组
|
let ids = []; // 定义id数组
|
||||||
rows.forEach((row) => { // 遍历选中行
|
rows.forEach((row) => { // 遍历选中行
|
||||||
ids.push(row[this.keyName]); // 将选择行的id添加到id数组
|
ids.push(row[this.keyName]); // 将选择行的id添加到id数组
|
||||||
|
|
@ -397,7 +348,7 @@ export default {
|
||||||
|
|
||||||
// 搜索
|
// 搜索
|
||||||
onSearch() {
|
onSearch() {
|
||||||
this.$refs.xGrid.commitProxy('query') // 提交搜索
|
this.loadData();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -418,12 +369,14 @@ export default {
|
||||||
.gridPanel {
|
.gridPanel {
|
||||||
height: calc(100vh - 400px);
|
height: calc(100vh - 400px);
|
||||||
}
|
}
|
||||||
</style>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.oplinks svg {
|
.oplinks svg {
|
||||||
width: 22px;
|
width: 22px;
|
||||||
height: 22px;
|
height: 22px;
|
||||||
margin: 0 5px 0 0;
|
margin: 0 5px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scheme-img{
|
||||||
|
width:100%;height:300px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
var config = {
|
var config = {
|
||||||
|
|
||||||
|
schemeType_main : "1",
|
||||||
|
|
||||||
options_schemeType: [
|
options_schemeType: [
|
||||||
{ label: '主柜', value: '1' }, { label: '抽屉', value: '2' }
|
{ label: '主柜', value: '1' }, { label: '抽屉', value: '2' }
|
||||||
],
|
],
|
||||||
|
|
@ -19,6 +22,19 @@ var config = {
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
"抽屉长度": ({ data }) => {
|
||||||
|
return data.long;
|
||||||
|
},
|
||||||
|
|
||||||
|
"抽屉宽度": ({ data }) => {
|
||||||
|
return data.width;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
"抽屉高度": ({ data }) => {
|
||||||
|
return data.height;
|
||||||
|
},
|
||||||
|
|
||||||
"部件的数量": ({ row }) => {
|
"部件的数量": ({ row }) => {
|
||||||
return row.quantity;
|
return row.quantity;
|
||||||
},
|
},
|
||||||
|
|
@ -71,6 +87,14 @@ var config = {
|
||||||
return data.paintLabor_total_amount;
|
return data.paintLabor_total_amount;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"免漆抽屉总费用": ({ data }) => {
|
||||||
|
return data.drawer_total_amount;
|
||||||
|
},
|
||||||
|
"油漆抽屉总费用": ({ data }) => {
|
||||||
|
return data.drawer_total_paint_amount;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
"包装的长": ({ row }) => {
|
"包装的长": ({ row }) => {
|
||||||
return row.long;
|
return row.long;
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,9 @@ const BaseAdminRouterMap = {
|
||||||
name: '用户管理',
|
name: '用户管理',
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
path: '/BaseAdmin/BaseAdminList',
|
path: '/BaseAdmin/BaseAdminList',
|
||||||
|
meta: {
|
||||||
|
invisible: true
|
||||||
|
},
|
||||||
component: () => import('@/pages/Middle/Base/BaseAdmin/BaseAdmin/list'),
|
component: () => import('@/pages/Middle/Base/BaseAdmin/BaseAdmin/list'),
|
||||||
|
|
||||||
authority: {
|
authority: {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ const routerMap = {
|
||||||
routerMap[FunName]= {
|
routerMap[FunName]= {
|
||||||
name: FunTitle,
|
name: FunTitle,
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
component: view.page,
|
component: view.blank,
|
||||||
meta: {
|
meta: {
|
||||||
},
|
},
|
||||||
authority: {
|
authority: {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ const routerMap = {
|
||||||
routerMap[FunName]= {
|
routerMap[FunName]= {
|
||||||
name: FunTitle,
|
name: FunTitle,
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
component: view.page,
|
component: view.blank,
|
||||||
meta: {
|
meta: {
|
||||||
},
|
},
|
||||||
authority: {
|
authority: {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ const routerMap = {
|
||||||
routerMap[FunName]= {
|
routerMap[FunName]= {
|
||||||
name: FunTitle,
|
name: FunTitle,
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
component: view.page,
|
component: view.blank,
|
||||||
meta: {
|
meta: {
|
||||||
},
|
},
|
||||||
authority: {
|
authority: {
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ const routerMap = {
|
||||||
routerMap[FunName]= {
|
routerMap[FunName]= {
|
||||||
name: FunTitle,
|
name: FunTitle,
|
||||||
icon: 'idcard',
|
icon: 'idcard',
|
||||||
component: view.page,
|
component: view.blank,
|
||||||
meta: {
|
meta: {
|
||||||
},
|
},
|
||||||
authority: {
|
authority: {
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,7 @@ function loadRoutes(routesConfig) { // 加载路由
|
||||||
formatRoutes(finalRoutes)
|
formatRoutes(finalRoutes)
|
||||||
console.log('最终路由表finalRoutes:', finalRoutes) // 最终路由表
|
console.log('最终路由表finalRoutes:', finalRoutes) // 最终路由表
|
||||||
router.options = { ...router.options, routes: finalRoutes } // 路由配置
|
router.options = { ...router.options, routes: finalRoutes } // 路由配置
|
||||||
|
console.log(router.options)
|
||||||
router.matcher = new Router({ ...router.options, routes: [] }).matcher // 重置路由
|
router.matcher = new Router({ ...router.options, routes: [] }).matcher // 重置路由
|
||||||
router.addRoutes(finalRoutes) // 添加路由
|
router.addRoutes(finalRoutes) // 添加路由
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,14 +23,14 @@ const assetsCDN = { // 静态资源CDN地址
|
||||||
css: [
|
css: [
|
||||||
],
|
],
|
||||||
js: [
|
js: [
|
||||||
'//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js',
|
'/js/vue.min.js',
|
||||||
'//cdn.jsdelivr.net/npm/vue-router@3.3.4/dist/vue-router.min.js',
|
'/js/vue-router.min.js',
|
||||||
'//cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js',
|
'/js/vuex.min.js',
|
||||||
'//cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js',
|
'/js/axios.min.js',
|
||||||
'//cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js',
|
'/js/nprogress.min.js',
|
||||||
'//cdn.jsdelivr.net/npm/clipboard@2.0.6/dist/clipboard.min.js',
|
'/js/clipboard.min.js',
|
||||||
'//cdn.jsdelivr.net/npm/@antv/data-set@0.11.4/build/data-set.min.js',
|
'/js/data-set.min.js',
|
||||||
'//cdn.jsdelivr.net/npm/js-cookie@2.2.1/src/js.cookie.min.js'
|
'/js/js.cookie.min.js'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5542,6 +5542,11 @@
|
||||||
"resolved" "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz"
|
"resolved" "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz"
|
||||||
"version" "1.2.0"
|
"version" "1.2.0"
|
||||||
|
|
||||||
|
"hevue-img-preview@^6.1.0":
|
||||||
|
"integrity" "sha512-2KrbKUUGUbwYR6MuKVeBghPIywTBYFr0XMoJADoZ33cQHDT0x1A7B4g8EwL1zXK6eyk1low5kefmUw2q+yIfvw=="
|
||||||
|
"resolved" "https://registry.npmmirror.com/hevue-img-preview/-/hevue-img-preview-6.1.0.tgz"
|
||||||
|
"version" "6.1.0"
|
||||||
|
|
||||||
"hex-color-regex@^1.1.0":
|
"hex-color-regex@^1.1.0":
|
||||||
"integrity" "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4="
|
"integrity" "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4="
|
||||||
"resolved" "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz"
|
"resolved" "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue