# Conflicts: # src/views/workOrder/workOrderPool/index.vue
@@ -56,12 +56,12 @@ export default {
if (opt[key]?.prompt) {
return role && (opt[key]?.conditions ? opt[key]?.conditions({ row, index, column }) : true) ? (
<el-popconfirm
- title={opt[key]?.prompt}
+ title={setBtnName(opt[key]?.prompt, { row, index, column })}
onConfirm={() => {
opt[key]?.click({ row, index, column })
}}
>
- <el-button size="mini" type={opt[key]?.btnType || 'primary'} slot="reference">
+ <el-button size="mini" type={opt[key]?.btnType || 'text'} slot="reference">
{setBtnName(opt[key]?.name, { row, index, column }) || role.moduleName}
</el-button>
</el-popconfirm>
@@ -70,7 +70,7 @@ export default {
<el-button
size="mini"
- type={opt[key]?.btnType || 'primary'}
+ type={opt[key]?.btnType || 'text'}
onClick={() => {
@@ -137,26 +137,16 @@ export default {
type: Array,
default: () => [15, 30, 50, 100, 150, 200],
},
+ expCode: {
+ type: String,
+ default: 'exp'
+ },
data() {
return {
dialogVisible: false,
// 搜索的参数
parameter: {},
- // 按钮集合
- evens: this.exportList
- ? [[
- {
- name: '导出',
- click: this.export,
- loading: false
- }
- // this.optionsEvensAuth("export", {
- // click: this.export,
- // loading: false
- // })
- ]]
- : [],
// 表格属性
defaultTableAttributes: {},
// 表格事件
@@ -192,6 +182,15 @@ export default {
moduleName() {
return this.customModuleName || this.$route.meta.title
+ evens() {
+ return this.exportList
+ ? [[
+ this.optionsEvensAuth(this.expCode, {
+ click: this.export
+ })
+ ]]
+ : []
}
mounted() {
@@ -500,7 +499,7 @@ export default {
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
- if (this.evens[0]) this.evens[0][0].loading = true
+
var { querylist, ...p } = this.getParams()
var pms = {
@@ -549,24 +548,20 @@ export default {
type: 'success'
this.columnList = []
- if (this.evens[0]) this.evens[0][0].loading = false
loading.close()
.catch(err => {
this.$message.error('导出失败')
} else {
this.$message.error('导出条件没有查到任何符合条件的数据,请调整查询条件再导出。')
@@ -29,6 +29,7 @@ function getc(obj) {
router.beforeEach(async (to, from, next) => {
NProgress.start()
document.title = getPageTitle(to.meta.title)
const hasToken = getToken()
@@ -48,16 +49,31 @@ router.beforeEach(async (to, from, next) => {
global.antRouter = []
next()
+ var userInfo = JSON.parse(localStorage.getItem('greemall_user'))
+ var moduleObj = {
+ // 辅材配件
+ auxiliaryFittings: userInfo.moduleMaterialPart,
+ // 维保
+ engineeringMaintenance: userInfo.moduleWb,
+ // 延保
+ valueAddedService: userInfo.moduleYb,
+ }
// 设置路由
lay.children = []
for (var route of store.getters.menus) {
- lay.children.push(...buildRoute(route))
+ if (moduleObj[route.code] !== false) {
+ lay.children.push(...buildRoute(route))
lay.redirect = getc(lay).path
router.addRoutes([lay])
- global.antRouter.push(...buildRoute(route, '', false))
+ global.antRouter.push(...buildRoute(route, '', false))
next({
...to,
@@ -1,19 +1,19 @@
<template>
- <template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="50"
- :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters" :column-parsing="columnParsing"
- :operation="operation" :exportList="exportList">
- <el-dialog title="" width="1200px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
- :show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="formCancel">
- <zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
- <zj-form-module :title="formDialogTitles[formDialogType]" label-width="170px" :showPackUp="false"
- :form-data="formData" :form-items="formItems" :disabled="formDialogType==2">
- </zj-form-module>
- </zj-form-container>
- <div slot="footer" class="dialog-footer">
- <el-button size="mini" @click="formCancel">取 消</el-button>
- <el-button size="mini" type="primary" @click="formConfirm()">确定</el-button>
- </div>
- </el-dialog>
+ <template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents"
+ :operationColumnWidth="50" :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters"
+ :column-parsing="columnParsing" :operation="operation()" :exportList="exportList">
+ <el-dialog title="" width="1200px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
+ :show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="formCancel">
+ <zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
+ <zj-form-module :title="formDialogTitles[formDialogType]" label-width="170px" :showPackUp="false"
+ :form-data="formData" :form-items="formItems" :disabled="formDialogType == 2">
+ </zj-form-module>
+ </zj-form-container>
+ <div slot="footer" class="dialog-footer">
+ <el-button size="mini" @click="formCancel">取 消</el-button>
+ <el-button size="mini" type="primary" @click="formConfirm()">确定</el-button>
+ </div>
+ </el-dialog>
</template-page>
</template>
@@ -23,647 +23,650 @@ import import_mixin from '@/components/template/import_mixin.js'
import ImageUpload from '@/components/file-upload'
import { downloadFiles } from '@/utils/util'
import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
-import { listPageV2,pageExport, getDetail, add, edit, updateStatus, listImport1, listImport2, getTypeList, getCategoryList } from "@/api/auxiliaryFittings/attachmentProfile";
+import { listPageV2, pageExport, getDetail, add, edit, updateStatus, listImport1, listImport2, getTypeList, getCategoryList } from "@/api/auxiliaryFittings/attachmentProfile";
import { commonTemplateDownload } from '@/api/common.js'
+import operation_mixin from '@/components/template/operation_mixin.js'
export default {
- components: { TemplatePage, ImageUpload },
- mixins: [import_mixin],
- data() {
- return {
- // 事件组合
- optionsEvensGroup: [
- [
- name: '新建',
- click: this.addData
- ]
- ],
- name: '批量上架',
- click: ()=>{
- this.updateStatus('ON')
+ components: { TemplatePage, ImageUpload },
+ mixins: [import_mixin, operation_mixin],
+ data() {
+ return {
+ // 表格属性
+ tableAttributes: {
+ // 启用勾选列
+ selectColumn: true
+ // 表格事件
+ tableEvents: {
+ 'selection-change': this.selectionChange
+ // 勾选选中行
+ recordSelected: [],
+ /** 表单变量 */
+ formDialogType: 0,
+ formDialogTitles: ["新增", "编辑", "详情"],
+ formDialog: false,
+ formData: {
+ companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
+ goodsType: 'P',
+ goodsStockUnit: '',
+ goodsCode: '',
+ goodsName: '',
+ normType: 'M',
+ status: 'ON',
+ categoryList: [],
+ brandList: [],
+ marketPrice: '',
+ normAmount: '',
+ selfWebsitAmount: '',
+ selfWorkerAmount: '',
+ outWebsitAmount: '',
+ outWorkerAmount: '',
+ remark: ''
+ partsUnitList: [],
+ categoryList: []
+ computed: {
+ // 事件组合
+ optionsEvensGroup() {
+ return [
+ [
+ this.optionsEvensAuth("add", {
+ click: this.addData
+ }),
+ ],
+ this.optionsEvensAuth("shelfInBulk", {
+ click: () => {
+ this.updateStatus('ON')
+ this.optionsEvensAuth("batchRemoval", {
+ this.updateStatus('OFF')
+ this.optionsEvensAuth("template", {
+ click: this.handleDownload1
+ this.optionsEvensAuth("imp", ({ moduleName }) => {
+ name: moduleName,
+ render: () => {
+ return this.importButton(listImport1, moduleName)
+ this.optionsEvensAuth("importTemplate", {
+ click: this.handleDownload2
+ this.optionsEvensAuth("Import", ({ moduleName }) => {
+ return this.importButton(listImport2, moduleName)
+ ]
+ // 更多参数
+ moreParameters() {
+ return []
+ //加法
+ accAdd() {
+ return function (arg1, arg2) {
+ var r1, r2, m;
+ try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
+ try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
+ m = Math.pow(10, Math.max(r1, r2))
+ return (arg1 * m + arg2 * m) / m
+ //减法
+ Subtr() {
+ var r1, r2, m, n;
+ m = Math.pow(10, Math.max(r1, r2));
+ n = (r1 >= r2) ? r1 : r2;
+ return ((arg1 * m - arg2 * m) / m).toFixed(2);
+ formItems() {
+ return [{
+ md: 12,
+ isShow: true,
+ name: 'el-input',
+ attributes: { placeholder: '请输入', disabled: true },
+ formItemAttributes: {
+ label: '所属商户',
+ prop: 'companyName',
+ rules: [...required]
+ }, {
+ name: 'slot-component',
+ attributes: {},
+ label: '状态',
+ prop: 'status',
+ render: (h, { props, onInput }) => {
+ var { value } = props
+ return (
+ <el-radio-group v-model={this.formData.status}>
+ <el-radio disabled={this.formDialogType == 2} label="ON">上架</el-radio>
+ <el-radio disabled={this.formDialogType == 2} label="OFF">下架</el-radio>
+ </el-radio-group>
+ )
+ attributes: { placeholder: '请输入配件名称', },
+ label: '配件名称',
+ prop: 'goodsName',
+ name: 'el-select-add',
+ labelKey: 'dictValue',
+ valueKey: 'dictValue',
+ options: this.partsUnitList,
+ attributes: { placeholder: '请选择单位', filterable: true, clearable: true },
+ label: '单位',
+ prop: 'goodsStockUnit',
+ events: {
+ change: (e) => {
+ this.$refs.formRef.validateField(['goodsStockUnit'], (valid, invalidFields, errLabels) => { })
- name: '批量下架',
- this.updateStatus('OFF')
+ attributes: { placeholder: '请输入配件代码' },
+ label: '配件代码',
+ prop: 'goodsCode',
+ label: '收费类型',
+ prop: 'normType',
+ <el-radio-group v-model={this.formData.normType}>
+ <el-radio disabled={this.formDialogType == 2} label="M">配件物料</el-radio>
+ <el-radio disabled={this.formDialogType == 2} label="S">服务收费</el-radio>
+ md: 24,
+ isShow: this.formData.normType == 'M' ? true : false,
+ name: 'el-checkbox-add',
+ valueKey: 'dictCode',
+ options: this.brandList,
+ label: '适用品牌',
+ prop: 'brandList',
+ this.$refs.formRef.validateField(['brandList'], (valid, invalidFields, errLabels) => { })
- name: '下载配件物料导入模板',
- click: this.handleDownload1
- name: '导入配件物料模板',
- render: () => {
- return this.importButton(listImport1, '导入模板')
- name: '下载服务收费导入模板',
- click: this.handleDownload2
- name: '导入服务收费模板',
- return this.importButton(listImport2, '导入模板')
- // 表格属性
- tableAttributes: {
- // 启用勾选列
- selectColumn: true
- },
- // 表格事件
- tableEvents: {
- 'selection-change': this.selectionChange
- // 勾选选中行
- recordSelected: [],
- /** 表单变量 */
- formDialogType: 0,
- formDialogTitles: ["新增","编辑", "详情"],
- formDialog: false,
- formData: {
- companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
- goodsType: 'P',
- goodsStockUnit: '',
- goodsCode: '',
- goodsName: '',
- normType: 'M',
- status: 'ON',
- categoryList: [],
- brandList: [],
- marketPrice: '',
- normAmount: '',
- selfWebsitAmount: '',
- selfWorkerAmount: '',
- outWebsitAmount: '',
- outWorkerAmount: '',
- remark: ''
- partsUnitList: [],
- categoryList: []
- computed: {
- // 更多参数
- moreParameters() {
- return []
-
- //加法
- accAdd(){
- return function(arg1,arg2){
- var r1,r2,m;
- try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
- try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
- m=Math.pow(10,Math.max(r1,r2))
- return (arg1*m+arg2*m)/m
- //减法
- Subtr(){
- var r1,r2,m,n;
- m=Math.pow(10,Math.max(r1,r2));
- n=(r1>=r2)?r1:r2;
- return ((arg1*m-arg2*m)/m).toFixed(2);
+ labelKey: 'name',
+ valueKey: 'categoryId',
+ options: this.categoryList,
+ label: '适用产品大类',
+ prop: 'categoryList',
+ this.$refs.formRef.validateField(['categoryList'], (valid, invalidFields, errLabels) => { })
+ attributes: { placeholder: '请输入', type: 'number' },
+ label: '销售价格',
+ prop: 'marketPrice',
+ <div style="position: relative;">
+ <div style="display: flex;justify-content: space-around;align-items: center;position: relative;">
+ <el-input v-model={this.formData.marketPrice} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+ <div style="color: #EA8000">注:维护网点销售给师傅的价格</div>
+ label: '收费标准',
+ prop: 'normAmount',
+ <el-input v-model={this.formData.normAmount} onChange={(e) => {
+ this.formData.normAmount = Number(e).toFixed(2)
+ if (this.formData.selfWorkerAmount > e) {
+ this.formData.normAmount = ''
+ return this.$message.warning('自有库存师傅分账金额必须小于收费标准!');
+ } else if (this.formData.outWorkerAmount > e) {
+ this.formData.outWorkerAmount = ''
+ return this.$message.warning('外购配件师傅分账金额必须小于收费标准!');
+ this.formData.selfWebsitAmount = this.Subtr(e, this.formData.selfWorkerAmount)
+ this.formData.outWebsitAmount = this.Subtr(e, this.formData.outWorkerAmount)
+ this.$refs.formRef.validateField(['selfWebsitAmount'], (valid, invalidFields, errLabels) => { })
+ this.$refs.formRef.validateField(['outWebsitAmount'], (valid, invalidFields, errLabels) => { })
+ }} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+ <div style="color: #EA8000">注:分账金额需扣除手续费0.6%</div>
+ label: '自有库存师傅分账金额',
+ prop: 'selfWorkerAmount',
+ const that = this
+ <el-input v-model={this.formData.selfWorkerAmount} onChange={(e) => {
+ this.formData.selfWorkerAmount = Number(this.formData.selfWorkerAmount).toFixed(2)
+ if (e && (Number(e) > Number(that.formData.normAmount))) {
+ that.formData.selfWorkerAmount = ''
+ that.formData.selfWebsitAmount = this.Subtr(that.formData.normAmount, e)
+ isShow: this.formData.normType == 'M' ? false : true,
+ label: '师傅分账比例',
+ if (e && (Number(e) < 0)) {
+ return this.$message.warning('师傅分账比例不能为0!');
+ if (e && (this.accAdd(Number(e), Number(that.formData.selfWebsitAmount)) > 100)) {
+ this.formData.selfWorkerAmount = 0
+ return this.$message.warning('商户与师傅分账比例和最大只能100%!');
+ } else {
+ that.formData.selfWebsitAmount = this.Subtr(100, e)
+ }} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">%</span>
+ label: '外购配件师傅分账金额',
+ prop: 'outWorkerAmount',
+ <el-input v-model={this.formData.outWorkerAmount} onChange={(e) => {
+ this.formData.outWorkerAmount = Number(this.formData.outWorkerAmount).toFixed(2)
+ if (Number(e) > Number(that.formData.normAmount)) {
+ this.formData.outWebsitAmount = this.Subtr(this.formData.normAmount, e)
+ label: '自有库存商户分账金额',
+ prop: 'selfWebsitAmount',
+ <el-input v-model={this.formData.selfWebsitAmount} disabled type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+ label: '商户分账比例',
+ <el-input v-model={this.formData.selfWebsitAmount} onChange={(e) => {
+ this.formData.selfWebsitAmount = Number(this.formData.selfWebsitAmount).toFixed(2)
+ return this.$message.warning('商户分账比例不能为0!');
+ if (e && (this.accAdd(Number(e), Number(that.formData.selfWorkerAmount)) > 100)) {
+ this.formData.selfWebsitAmount = 0
+ that.formData.selfWorkerAmount = this.Subtr(100, e)
+ label: '外购配件商户分账金额',
+ prop: 'outWebsitAmount',
+ <el-input v-model={this.formData.outWebsitAmount} disabled type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+ attributes: { placeholder: '请输入备注内容', type: "textarea", rows: 5 },
+ label: '备注',
+ prop: 'remark',
+ rules: []
+ }]
- formItems() {
- return [{
- md: 12,
- isShow: true,
- name: 'el-input',
- attributes: { placeholder: '请输入', disabled: true },
- formItemAttributes: {
- label: '所属商户',
- prop: 'companyName',
- rules: [...required]
- }, {
- name: 'slot-component',
- attributes: { },
- label: '状态',
- prop: 'status',
- render: (h, { props, onInput }) => {
- var { value } = props
- return (
- <el-radio-group v-model={this.formData.status}>
- <el-radio disabled={this.formDialogType==2} label="ON">上架</el-radio>
- <el-radio disabled={this.formDialogType==2} label="OFF">下架</el-radio>
- </el-radio-group>
- )
- attributes: { placeholder: '请输入配件名称', },
- label: '配件名称',
- prop: 'goodsName',
- name: 'el-select-add',
- labelKey: 'dictValue',
- valueKey: 'dictValue',
- options: this.partsUnitList,
- attributes: { placeholder: '请选择单位',filterable: true, clearable: true },
- label: '单位',
- prop: 'goodsStockUnit',
- events: {
- change:(e)=>{
- this.$refs.formRef.validateField(['goodsStockUnit'],(valid, invalidFields, errLabels) => {})
+ methods: {
+ // 列表请求函数
+ getList(p, cb) {
+ try {
+ var pam = JSON.parse(JSON.stringify(p))
+ if (this.examineStatus) {
+ pam.params.push({ "param": "b.examine_status", "compare": "=", "value": this.examineStatus })
+ cb && cb(pam)
+ return listPageV2(pam)
+ } catch (error) {
+ console.log(error)
- attributes: { placeholder: '请输入配件代码' },
- label: '配件代码',
- prop: 'goodsCode',
- attributes: {},
- label: '收费类型',
- prop: 'normType',
- <el-radio-group v-model={this.formData.normType}>
- <el-radio disabled={this.formDialogType==2} label="M">配件物料</el-radio>
- <el-radio disabled={this.formDialogType==2} label="S">服务收费</el-radio>
- md: 24,
- isShow: this.formData.normType == 'M'?true:false,
- name: 'el-checkbox-add',
- valueKey: 'dictCode',
- options: this.brandList,
- label: '适用品牌',
- prop: 'brandList',
- this.$refs.formRef.validateField(['brandList'],(valid, invalidFields, errLabels) => {})
+ getTypeList(value, type) {
+ getTypeList({ "pageNum": 1, "pageSize": -1, "params": [{ "param": "a.dict_type", "compare": "=", "value": `${value}` }, { "param": "a.status", "compare": "=", "value": "ON" }] }).then(res => {
+ this[type] = res.data.records
+ getCategoryList() {
+ getCategoryList({ "type": 2 }).then(res => {
+ this.categoryList = res.data
+ // 列表导出函数
+ exportList: pageExport,
+ // 表格列解析渲染数据更改
+ columnParsing(item, defaultData) {
+ if (item.jname === 'idCardImg') {
+ defaultData.render = (h, { row, index, column }) => {
+ <div style="padding:0 6px;cursor: pointer;">
+ {row.idCardImg ? row.idCardImg.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;" />) : null}
- labelKey: 'name',
- valueKey: 'categoryId',
- options: this.categoryList,
- label: '适用产品大类',
- prop: 'categoryList',
- this.$refs.formRef.validateField(['categoryList'],(valid, invalidFields, errLabels) => {})
+ if (item.jname === 'selfWorkerAmount') {
+ <div>{row.normType == 'M' ? row.selfWorkerAmount : (row.selfWorkerAmount + '%')}</div>
- attributes: { placeholder: '请输入', type: 'number' },
- label: '销售价格',
- prop: 'marketPrice',
- <div style="position: relative;">
- <div style="display: flex;justify-content: space-around;align-items: center;position: relative;">
- <el-input v-model={this.formData.marketPrice} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
- <div style="color: #EA8000">注:维护网点销售给师傅的价格</div>
- label: '收费标准',
- prop: 'normAmount',
- <el-input v-model={this.formData.normAmount} onChange={(e)=>{
- this.formData.normAmount = Number(e).toFixed(2)
- if(this.formData.selfWorkerAmount > e){
- this.formData.normAmount = ''
- return this.$message.warning('自有库存师傅分账金额必须小于收费标准!');
- }else if(this.formData.outWorkerAmount > e){
- this.formData.outWorkerAmount = ''
- return this.$message.warning('外购配件师傅分账金额必须小于收费标准!');
- this.formData.selfWebsitAmount = this.Subtr(e,this.formData.selfWorkerAmount)
- this.formData.outWebsitAmount = this.Subtr(e,this.formData.outWorkerAmount)
- this.$refs.formRef.validateField(['selfWebsitAmount'],(valid, invalidFields, errLabels) => {})
- this.$refs.formRef.validateField(['outWebsitAmount'],(valid, invalidFields, errLabels) => {})
- }} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
- <div style="color: #EA8000">注:分账金额需扣除手续费0.6%</div>
- label: '自有库存师傅分账金额',
- prop: 'selfWorkerAmount',
- const that = this
- <el-input v-model={this.formData.selfWorkerAmount} onChange={(e)=>{
- this.formData.selfWorkerAmount = Number(this.formData.selfWorkerAmount).toFixed(2)
- if(e && (Number(e) > Number(that.formData.normAmount))){
- that.formData.selfWorkerAmount = ''
- that.formData.selfWebsitAmount = this.Subtr(that.formData.normAmount,e)
- isShow: this.formData.normType == 'M'?false:true,
- label: '师傅分账比例',
- if(e && (Number(e) < 0)){
- return this.$message.warning('师傅分账比例不能为0!');
- if(e && (this.accAdd(Number(e),Number(that.formData.selfWebsitAmount)) >100)){
- this.formData.selfWorkerAmount = 0
- return this.$message.warning('商户与师傅分账比例和最大只能100%!');
- }else{
- that.formData.selfWebsitAmount = this.Subtr(100,e)
- }} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">%</span>
- label: '外购配件师傅分账金额',
- prop: 'outWorkerAmount',
- <el-input v-model={this.formData.outWorkerAmount} onChange={(e)=>{
- this.formData.outWorkerAmount = Number(this.formData.outWorkerAmount).toFixed(2)
- if(Number(e) > Number(that.formData.normAmount)){
- this.formData.outWebsitAmount = this.Subtr(this.formData.normAmount,e)
- label: '自有库存商户分账金额',
- prop: 'selfWebsitAmount',
- <el-input v-model={this.formData.selfWebsitAmount} disabled type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
- label: '商户分账比例',
- <el-input v-model={this.formData.selfWebsitAmount} onChange={(e)=>{
- this.formData.selfWebsitAmount = Number(this.formData.selfWebsitAmount).toFixed(2)
- return this.$message.warning('商户分账比例不能为0!');
- if(e && (this.accAdd(Number(e),Number(that.formData.selfWorkerAmount)) >100)){
- this.formData.selfWebsitAmount = 0
- that.formData.selfWorkerAmount = this.Subtr(100,e)
- label: '外购配件商户分账金额',
- prop: 'outWebsitAmount',
- <el-input v-model={this.formData.outWebsitAmount} disabled type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
- attributes: { placeholder: '请输入备注内容',type: "textarea", rows: 5 },
- label: '备注',
- prop: 'remark',
- rules: []
- }]
- methods: {
- // 列表请求函数
- getList(p,cb) {
- try {
- var pam = JSON.parse(JSON.stringify(p))
- if (this.examineStatus) {
- pam.params.push({ "param": "b.examine_status", "compare": "=", "value": this.examineStatus })
- cb && cb(pam)
- return listPageV2(pam)
- } catch (error) {
- console.log(error)
- getTypeList(value,type){
- getTypeList({"pageNum":1,"pageSize":-1,"params":[{"param":"a.dict_type","compare":"=","value":`${value}`},{"param":"a.status","compare":"=","value": "ON"}]}).then(res => {
- this[type] = res.data.records
- })
- getCategoryList(){
- getCategoryList({"type":2}).then(res => {
- this.categoryList = res.data
- // 列表导出函数
- exportList: pageExport,
- // 表格列解析渲染数据更改
- columnParsing(item, defaultData) {
- if (item.jname === 'idCardImg') {
- defaultData.render = (h, { row, index, column }) => {
- <div style="padding:0 6px;cursor: pointer;">
- {row.idCardImg ? row.idCardImg.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;" />) : null}
- if(item.jname === 'selfWorkerAmount'){
- <div>{row.normType == 'M'?row.selfWorkerAmount:(row.selfWorkerAmount + '%')}</div>
+ if (item.jname === 'selfWebsitAmount') {
+ <div>{row.normType == 'M' ? row.selfWebsitAmount : (row.selfWebsitAmount + '%')}</div>
- if(item.jname === 'selfWebsitAmount'){
- <div>{row.normType == 'M'?row.selfWebsitAmount: (row.selfWebsitAmount + '%')}</div>
+ return defaultData
+ // 监听勾选变化
+ selectionChange(data) {
+ this.recordSelected = data
+ operation() {
+ return this.operationBtn({
+ edit: {
+ click: ({ row, index, column }) => {
+ getDetail({ id: row.goodsId }).then(res => {
+ Object.assign(this.formData, res.data, {
+ brandList: res.data.brandList ? res.data.brandList : [],
+ categoryList: res.data.categoryList ? res.data.categoryList : [],
+ console.log(this.formData)
+ this.formDialogType = 1
+ this.openForm()
+ addData() {
+ this.formDialogType = 0
+ console.log(this.partsUnitList, this.brandList, this.categoryList)
+ openForm() {
+ this.getTypeList('PARTS_UNIT', 'partsUnitList')
+ this.getTypeList('BRAND', 'brandList')
+ this.getCategoryList()
+ this.formDialog = true;
+ formCancel() {
+ this.$refs.formRef.$refs.inlineForm.clearValidate()
+ this.$data.formData = this.$options.data().formData
+ this.formDialog = false
+ updateStatus(stateEnum) {
+ if (this.recordSelected.length == 0) {
+ return this.$message.warning('请至少勾选一条数据!');
- return defaultData
- // 监听勾选变化
- selectionChange(data) {
- this.recordSelected = data
- // 表格操作列
- operation(h, { row, index, column }) {
- <div class='operation-btns'>
- <el-button type="text" onClick={() => {
- getDetail({ id: row.goodsId }).then(res => {
- Object.assign(this.formData, res.data, {
- brandList: res.data.brandList?res.data.brandList:[],
- categoryList: res.data.categoryList?res.data.categoryList:[],
- console.log(this.formData)
- this.formDialogType = 1
- this.openForm()
- }}>编辑</el-button>
- addData() {
- this.formDialogType = 0
- console.log(this.partsUnitList,this.brandList,this.categoryList)
- openForm() {
- this.getTypeList('PARTS_UNIT','partsUnitList')
- this.getTypeList('BRAND','brandList')
- this.getCategoryList()
- this.formDialog = true;
- formCancel() {
- this.$refs.formRef.$refs.inlineForm.clearValidate()
- this.$data.formData = this.$options.data().formData
- this.formDialog = false
- updateStatus(stateEnum){
- if(this.recordSelected.length == 0){
- return this.$message.warning('请至少勾选一条数据!');
- console.log(this.recordSelected)
- this.$confirm(`请确认是否${stateEnum=='OFF'?'下架':'上架'}该配件, 是否继续?`, '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- updateStatus({
- stateEnum,
- ids: this.recordSelected.map(item=>{return item.goodsId}).join(',')
- }).then(res => {
- if (res.code == 200) {
- this.$message({ type: 'success', message: `${stateEnum=='ON'?'上架':'下架'}成功!` })
- this.$refs.pageRef.refreshList()
- } else {
- this.$message.error(res.msg);
+ console.log(this.recordSelected)
+ this.$confirm(`请确认是否${stateEnum == 'OFF' ? '下架' : '上架'}该配件, 是否继续?`, '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(() => {
+ updateStatus({
+ stateEnum,
+ ids: this.recordSelected.map(item => { return item.goodsId }).join(',')
+ }).then(res => {
+ if (res.code == 200) {
+ this.$message({ type: 'success', message: `${stateEnum == 'ON' ? '上架' : '下架'}成功!` })
+ this.$refs.pageRef.refreshList()
+ this.$message.error(res.msg);
+ });
+ formConfirm() {
+ this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
+ if (valid) {
+ ([add, edit][this.formDialogType])(this.formData).then(res => {
+ this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
+ this.formCancel()
- });
- formConfirm() {
- this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
- if (valid) {
- ([add, edit][this.formDialogType])(this.formData).then(res => {
- this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
- this.formCancel()
- // 下载导入模版
- handleDownload1() {
- commonTemplateDownload({ name: '配件模板(配件物料).xlsx' }, `${this.$route.meta.title}`).then(res => {
- this.$message({
- message: '下载成功',
- type: 'success'
- }).catch(err => {
- this.$message.error('下载失败')
- // downloadFiles('charging/standard/download');
- handleDownload2() {
- commonTemplateDownload({ name: '配件模板(服务收费).xlsx' }, `${this.$route.meta.title}`).then(res => {
+ // 下载导入模版
+ handleDownload1() {
+ commonTemplateDownload({ name: '配件模板(配件物料).xlsx' }, `${this.$route.meta.title}`).then(res => {
+ this.$message({
+ message: '下载成功',
+ type: 'success'
+ }).catch(err => {
+ this.$message.error('下载失败')
+ // downloadFiles('charging/standard/download');
+ handleDownload2() {
+ commonTemplateDownload({ name: '配件模板(服务收费).xlsx' }, `${this.$route.meta.title}`).then(res => {
</script>
<style lang="scss" scoped>
- .tab{
- padding: 20px 20px 0 20px;
+.tab {
+ padding: 20px 20px 0 20px;
+}
</style>
@@ -1,7 +1,7 @@
<template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents"
:options-evens-group="optionsEvensGroup" :moreParameters="moreParameters" :column-parsing="columnParsing"
+ :operation="operation()" :exportList="exportList">
<el-dialog title="" width="860px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
:show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" :before-close="formCancel">
<zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
@@ -25,34 +25,76 @@ import { materialNormList, materialNormListExport, materialNormAdd, materialNorm
import { materialCategoryTree } from "@/api/auxiliaryMaterialClass";
import { getTypeList } from "@/api/auxiliaryFittings/attachmentProfile";
components: { TemplatePage },
+ formDialogTitles: ["新增", "编辑"],
+ companyWechatName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
+ "categoryId": "",
+ "companyWechatId": "",
+ "createBy": "",
+ "createTime": "",
+ "normAmount": 0,
+ "normCode": "",
+ "normId": "",
+ "normName": "",
+ "normType": "",
+ "outWebsitAmount": 0,
+ "outWorkerAmount": 0,
+ "parentCategoryId": "",
+ "remark": "",
+ "selfWebsitAmount": 0,
+ "selfWorkerAmount": 0,
+ "specification": "",
+ "status": "ON",
+ "unit": "",
+ materialCategoryTree: []
[
- isRole: true,
click: this.addData
],
+ this.optionsEvensAuth(["imp", "template"], {
name: '导入物料',
click: () => { }
- name: '导入物料收费',
- return this.importButton(materialNormImport, '导入物料收费')
+ return this.importButton(materialNormImport, moduleName)
- name: '下载物料收费模板',
click: () => {
commonTemplateDownload({ name: '辅材收费标准模板(物料收费).xlsx' }, `辅材收费标准模板(物料收费)`)
.then(res => {
@@ -65,21 +107,22 @@ export default {
this.$message.error('下载失败')
+ this.optionsEvensAuth(["Import", "downloadTemplate"], {
name: '导入服务',
- name: '导入服务收费',
- return this.importButton(materialNormImport2, '导入服务收费')
+ return this.importButton(materialNormImport2, moduleName)
- name: '下载服务收费模板',
+ this.optionsEvensAuth("downloadTemplate", {
commonTemplateDownload({ name: '辅材收费标准模板(服务收费).xlsx' }, `辅材收费标准模板(服务收费)`)
@@ -92,14 +135,12 @@ export default {
+ this.optionsEvensAuth("batchLaunch", {
if (this.recordSelected.length) {
this.setRowStatus("ON")
@@ -110,12 +151,10 @@ export default {
});
this.setRowStatus("OFF")
@@ -126,51 +165,11 @@ export default {
- formDialogTitles: ["新增", "编辑"],
- companyWechatName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
- "categoryId": "",
- "companyWechatId": "",
- "createBy": "",
- "createTime": "",
- "normAmount": 0,
- "normCode": "",
- "normId": "",
- "normName": "",
- "normType": "",
- "outWebsitAmount": 0,
- "outWorkerAmount": 0,
- "parentCategoryId": "",
- "remark": "",
- "selfWebsitAmount": 0,
- "selfWorkerAmount": 0,
- "specification": "",
- "status": "ON",
- "unit": "",
- materialCategoryTree: []
// 更多参数
moreParameters() {
return []
@@ -411,20 +410,21 @@ export default {
selectionChange(data) {
this.recordSelected = data
materialNormDetail({ id: row.normId }).then(res => {
Object.assign(this.formData, res.data)
this.formDialogType = 1
this.openForm()
addData() {
this.formDialogType = 0
@@ -3,7 +3,8 @@
<div class="mymain-container">
<div class="btn-group clearfix">
<div class="fl">
- <el-button size="small" type="primary" icon="el-icon-plus" @click="addData">添加</el-button>
+ <el-button v-if="$restrict('add')" size="small" type="primary" icon="el-icon-plus"
+ @click="addData">添加</el-button>
</div>
<div class="table">
@@ -18,9 +19,10 @@
<el-table-column align="center" prop="sort" label="排序"></el-table-column>
<el-table-column align="right" label="操作" width="120" fixed="right">
<template slot-scope="scope">
- <el-button v-if="scope.row.parentCategoryId == 0" type="primary" size="mini" icon="el-icon-plus"
- @click="addDatapat(scope.row)"></el-button>
- <el-button type="primary" size="mini" icon="el-icon-edit" @click="setDataup(scope.row)"></el-button>
+ <el-button v-if="scope.row.parentCategoryId == 0 && $restrict('add')" type="primary" size="mini"
+ icon="el-icon-plus" @click="addDatapat(scope.row)"></el-button>
+ <el-button v-if="$restrict('edit')" type="primary" size="mini" icon="el-icon-edit"
+ @click="setDataup(scope.row)"></el-button>
</el-table-column>
</el-table>
@@ -25,84 +25,12 @@ import { websitGoodsmImport, materialNormList, materialNormListExport, materialN
- name: '导入辅材',
- click: () => { }
- name: '导入辅材模板',
- return this.importButton(websitGoodsmImport, '导入辅材模板')
- name: '下载辅材模板',
- click: () => {
- commonTemplateDownload({ name: '辅材模板.xlsx' }, `辅材模板`)
- .then(res => {
- .catch(err => {
- if (this.recordSelected.length) {
- this.setRowStatus("ON")
- type: 'warning',
- message: `请先勾选需要设置的数据!`,
- this.setRowStatus("OFF")
tableAttributes: {
// 启用勾选列
@@ -153,6 +81,76 @@ export default {
computed: {
+ name: '导入辅材',
+ click: () => { }
+ return this.importButton(websitGoodsmImport, moduleName)
+ commonTemplateDownload({ name: '辅材模板.xlsx' }, `辅材模板`)
+ .then(res => {
+ .catch(err => {
+ if (this.recordSelected.length) {
+ this.setRowStatus("ON")
+ type: 'warning',
+ message: `请先勾选需要设置的数据!`,
+ this.setRowStatus("OFF")
@@ -304,20 +302,21 @@ export default {
materialNormDetail({ id: row.goodsId }).then(res => {
@@ -10,17 +10,32 @@ import TemplatePage from '@/components/template/template-page-1.vue'
import import_mixin from '@/components/template/import_mixin.js'
import { websitStockList, websitStockListExport, websitStockImportM, } from "@/api/inventoryManagement";
+ selectColumn: false
- name: '辅材网点库存模板',
commonTemplateDownload({ name: '辅材网点库存.xlsx' }, `${this.$route.meta.title}`)
@@ -33,32 +48,21 @@ export default {
- name: '导入模板',
- return this.importButton(websitStockImportM, '导入模板')
+ return this.importButton(websitStockImportM, moduleName)
- selectColumn: false
@@ -77,12 +81,6 @@ export default {
- <div class='operation-btns'></div>
@@ -49,12 +49,6 @@ export default {
import { workerStockList, workerStockListExport, workerStockImportM, } from "@/api/inventoryManagement";
+ mixins: [import_mixin,operation_mixin],
- name: '辅材师傅库存模板',
commonTemplateDownload({ name: '辅材师傅库存.xlsx' }, `${this.$route.meta.title}`)
- return this.importButton(workerStockImportM, '导入模板')
+ return this.importButton(workerStockImportM, moduleName)
import { workerStockListP, workerStockListPExport, workerStockImportP, } from "@/api/inventoryManagement";
- name: '配件师傅库存模板',
commonTemplateDownload({ name: '配件师傅库存.xlsx' }, `${this.$route.meta.title}`)
- return this.importButton(workerStockImportP, '导入模板')
+ return this.importButton(workerStockImportP, moduleName)
import { websitStockListP, websitStockListPExport, websitStockImportP, } from "@/api/inventoryManagement";
- name: '配件网点库存模板',
commonTemplateDownload({ name: '配件网点库存.xlsx' }, `${this.$route.meta.title}`)
- return this.importButton(websitStockImportP, '导入模板')
+ return this.importButton(websitStockImportP, moduleName)
<template-page ref="pageRef" :get-list="getList" :exportList="exportList" :table-attributes="tableAttributes"
:table-events="tableEvents" :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters"
- :column-parsing="columnParsing" :operation="operation" :replaceOrNotMap="false">
+ :column-parsing="columnParsing" :operation="operation()" :replaceOrNotMap="false">
<div class="cartographer">
<el-dialog :title="({ M: '辅材入库单', P: '配件入库单' })[storageType]" width="100%" :modal="false" :visible.sync="formDialog"
:before-close="formCancel">
@@ -28,6 +28,7 @@
<script>
import TemplatePage from '@/components/template/template-page-1.vue'
import form_tpl from "../mixins/form_tpl.js"
import { websitPurchaseInList, websitPurchaseInListExport, websitPurchaseInAdd, websitPurchaseInEdit, websitPurchaseInConfirm, websitPurchaseInDetail } from "@/api/purchasingManagement.js"
@@ -38,7 +39,7 @@ export default {
- mixins: [import_mixin, form_tpl],
+ mixins: [import_mixin, form_tpl, operation_mixin],
formData: {
@@ -78,22 +79,33 @@ export default {
// 列表导出函数
exportList: websitPurchaseInListExport,
- // 操作按钮
- {row.flag == "SAVE" ? <el-button type="text" onClick={() => {
+ conditions: ({ row, index, column }) => {
+ return row.flag == "SAVE"
this.getDetail(row.purchaseId, 1)
- }}>编辑</el-button> : null}
- this.getDetail(row.purchaseId, 3)
- }}>审核</el-button> : null}
+ detail: {
this.getDetail(row.purchaseId, 2)
- }}>详情</el-button>
+ examine: {
+ this.getDetail(row.purchaseId, 3)
getDetail(purchaseId, type) {
websitPurchaseInDetail({ purchaseId }).then(res => {
Object.assign(this.formData, res.data, {
<el-dialog :title="({ M: '辅材退货单', P: '配件退货单' })[storageType]" width="100%" :modal="false" :visible.sync="formDialog"
@@ -29,6 +29,7 @@
import { websitPurchaseRetList, websitPurchaseRetListExport, websitPurchaseRetAdd, websitPurchaseRetEdit, websitPurchaseRetConfirm, websitPurchaseRetDetail } from "@/api/purchasingManagement.js"
props: {
@@ -80,22 +81,33 @@ export default {
exportList: websitPurchaseRetListExport,
this.getDetail(row.purchaseRetId, 1)
- this.getDetail(row.purchaseRetId, 3)
this.getDetail(row.purchaseRetId, 2)
+ this.getDetail(row.purchaseRetId, 3)
getDetail(purchaseRetId, type) {
websitPurchaseRetDetail({ purchaseRetId }).then(res => {
@@ -10,22 +10,42 @@ import { required, mobileRequired, mobile } from '@/components/template/rules_ve
+ formDialogType: 0, // 0:新增, 1:编辑, 2:查看, 3:审核
+ formDialogTitles: ['新增', '编辑', '查看', '审核'],
+ pageType: this?.$route?.name,
+ materialCategoryListL1: [],
+ materialCategoryListL2: [],
+ materialNormList: [],
+ peijianList: [],
+ websitPurchaseInList: []
+ optionsEvensGroup(){
isRole: !!~['auxiliaryMaterialsStorage', 'partsStorage'].indexOf(this?.$route?.name),
- name: '采购入库模板',
commonTemplateDownload({ name: '采购入库模板.xlsx' }, `${this.$route.meta.title}`)
@@ -38,23 +58,24 @@ export default {
- isRole: !!~['auxiliaryMaterialsStorage', 'partsStorage'].indexOf(this?.$route?.name),
- return this.importButton(websitPurchaseInImport, '导入模板', { goodsType: this.storageType })
+ isRole: !!~['auxiliaryMaterialsStorage', 'partsStorage'].indexOf(this?.$route?.name),
+ return this.importButton(websitPurchaseInImport, moduleName, { goodsType: this.storageType })
isRole: !!~['returnAuxiliaryMaterials', 'partsReturn'].indexOf(this?.$route?.name),
- name: '采购退货模板',
commonTemplateDownload({ name: '采购退货模板.xlsx' }, `${this.$route.meta.title}`)
@@ -67,41 +88,22 @@ export default {
- isRole: !!~['returnAuxiliaryMaterials', 'partsReturn'].indexOf(this?.$route?.name),
- return this.importButton(websitPurchaseRetImport, '导入模板', { goodsType: this.storageType })
+ isRole: !!~['returnAuxiliaryMaterials', 'partsReturn'].indexOf(this?.$route?.name),
+ return this.importButton(websitPurchaseRetImport, moduleName, { goodsType: this.storageType })
- formDialogType: 0, // 0:新增, 1:编辑, 2:查看, 3:审核
- formDialogTitles: ['新增', '编辑', '查看', '审核'],
- pageType: this?.$route?.name,
- materialCategoryListL1: [],
- materialCategoryListL2: [],
- materialNormList: [],
- peijianList: [],
- websitPurchaseInList: []
return [
{
@@ -1,23 +1,22 @@
<div class="page">
- <template-page v-show="!formDialog" ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="110"
- <div slot="moreSearch">
- <el-radio-group v-model="flag" size="mini" @change="changeType">
- <el-radio-button label="">全部</el-radio-button>
- <el-radio-button label="SAVE">保存</el-radio-button>
- <el-radio-button label="SUBMIT">提交</el-radio-button>
- <el-radio-button label="WAIT">待审核</el-radio-button>
- <el-radio-button label="OK">审核通过</el-radio-button>
- <!-- <el-radio-button label="FAIL">驳回</el-radio-button> -->
- <br><br>
+ <template-page v-show="!formDialog" ref="pageRef" :get-list="getList" :table-attributes="tableAttributes"
+ :table-events="tableEvents" :operationColumnWidth="110" :options-evens-group="optionsEvensGroup"
+ :moreParameters="moreParameters" :column-parsing="columnParsing" :operation="operation()" :exportList="exportList">
+ <div slot="moreSearch">
+ <el-radio-group v-model="flag" size="mini" @change="changeType">
+ <el-radio-button label="">全部</el-radio-button>
+ <el-radio-button label="SAVE">保存</el-radio-button>
+ <el-radio-button label="SUBMIT">提交</el-radio-button>
+ <el-radio-button label="WAIT">待审核</el-radio-button>
+ <el-radio-button label="OK">审核通过</el-radio-button>
+ <br><br>
<div class="detail" v-if="formDialog">
- <attachmentNewReturnDetail :id="id" @back="backList" :formType="formDialogType" :title="'配件新件返还' + formDialogTitles[formDialogType]"></attachmentNewReturnDetail>
+ <attachmentNewReturnDetail :id="id" @back="backList" :formType="formDialogType"
+ :title="'配件新件返还' + formDialogTitles[formDialogType]"></attachmentNewReturnDetail>
@@ -29,126 +28,148 @@ import import_mixin from '@/components/template/import_mixin.js'
-import { listPageV2,pageExport, getDetail, add, edit, submit } from "@/api/auxiliaryFittings/attachmentNewReturn";
+import { listPageV2, pageExport, getDetail, add, edit, submit } from "@/api/auxiliaryFittings/attachmentNewReturn";
- components: { TemplatePage, ImageUpload, attachmentNewReturnDetail },
- id: '',
- flag: ''
- formItems() {}
- // 切换状态
- changeType(val) {
+ components: { TemplatePage, ImageUpload, attachmentNewReturnDetail },
+ id: '',
+ flag: ''
- backList() {
- this.id = ''
- this.formDialog = false;
+ formItems() { }
- pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'P' },{ "param": "a.type", "compare": "=", "value": 'NEW' },{'param': 'a.flag', "compare": "=", "value": this.flag})
- this.id = row.partsRetId
- this.formDialogType = row.flag == 'SAVE'?1:2
- }}>{row.flag == 'SAVE'?'编辑':"详情"}</el-button>
- {row.flag == 'SUBMIT'?<el-button type="text" onClick={() => {
- }}>确认收货</el-button>:null}
- handleDownload() {
+ // 切换状态
+ changeType(val) {
+ backList() {
+ this.id = ''
+ this.formDialog = false;
+ pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'P' }, { "param": "a.type", "compare": "=", "value": 'NEW' }, { 'param': 'a.flag', "compare": "=", "value": this.flag })
+ return row.flag == 'SAVE'
+ this.id = row.partsRetId
+ return row.flag != 'SAVE'
+ this.formDialogType = 2
+ verify: {
+ return row.flag == 'SUBMIT'
+ this.formDialogType = row.flag == 'SAVE' ? 1 : 2
+ handleDownload() {
- .page{
- height: 100%;
+.page {
+ height: 100%;
- <attachmentOldReturnDetail :id="id" @back="backList" :formType="formDialogType" :title="'配件旧件返还' + formDialogTitles[formDialogType]"></attachmentOldReturnDetail>
+ <attachmentOldReturnDetail :id="id" @back="backList" :formType="formDialogType"
+ :title="'配件旧件返还' + formDialogTitles[formDialogType]"></attachmentOldReturnDetail>
- components: { TemplatePage, ImageUpload, attachmentOldReturnDetail },
+ components: { TemplatePage, ImageUpload, attachmentOldReturnDetail },
- pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'P' },{ "param": "a.type", "compare": "=", "value": 'OLD' },{'param': 'a.flag', "compare": "=", "value": this.flag})
+ pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'P' }, { "param": "a.type", "compare": "=", "value": 'OLD' }, { 'param': 'a.flag', "compare": "=", "value": this.flag })
@@ -1,25 +1,25 @@
- <template-page v-show="!formDialog" ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="140"
- <el-radio-button label="PAY_NOT_TAKE">已支付未提货</el-radio-button>
- <el-radio-button label="PAY_TAKE">已支付已提货</el-radio-button>
- <el-radio-button label="CANCEL">取消订单</el-radio-button>
+ :table-events="tableEvents" :operationColumnWidth="140" :options-evens-group="optionsEvensGroup"
+ <el-radio-button label="PAY_NOT_TAKE">已支付未提货</el-radio-button>
+ <el-radio-button label="PAY_TAKE">已支付已提货</el-radio-button>
+ <el-radio-button label="CANCEL">取消订单</el-radio-button>
- <attachmentSalesOrderDetail :id="id" @back="backList" :formType="formDialogType" :title="'配件销售订单' + formDialogTitles[formDialogType]"></attachmentSalesOrderDetail>
+ <attachmentSalesOrderDetail :id="id" @back="backList" :formType="formDialogType"
+ :title="'配件销售订单' + formDialogTitles[formDialogType]"></attachmentSalesOrderDetail>
- <print-preview ref="preView" @initPrint="handleInitPrint" @refreshList="handleRefreshList" />
+ <print-preview ref="preView" @initPrint="handleInitPrint" @refreshList="handleRefreshList" />
@@ -30,167 +30,190 @@ import import_mixin from '@/components/template/import_mixin.js'
-import { listPageV2,pageExport, getDetail, add, edit, submit } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
+import { listPageV2, pageExport, getDetail, add, edit, submit } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
import { getWebsit } from "@/api/customerManagement";
import printPreview from '../components/preview.vue'
import { disAutoConnect, hiprint } from 'vue-plugin-hiprint'
disAutoConnect()
- components: { TemplatePage, ImageUpload, attachmentSalesOrderDetail, printPreview },
- flag: '',
- websitList:[]
- formItems() {},
- filterArr(){
- return function (arr, size) {
- //判断如果不是数组(就没有length),或者size没有传值,size小于1,就返回空数组
- if (!arr.length || !size || size < 1) return []
- let [start, end, result] = [null, null, []]
- for (let i = 0; i < Math.ceil(arr.length / size); i++) {
- start = i * size
- end = start + size
- result.push(arr.slice(start, end))
- return result
+ components: { TemplatePage, ImageUpload, attachmentSalesOrderDetail, printPreview },
+ flag: '',
+ websitList: []
- pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'P' },{'param': 'a.flag', "compare": "=", "value": this.flag})
- this.id = row.salesId
- {row.flag == 'PAY_NOT_TAKE'?<el-button type="text" onClick={() => {
- }}>确认提货</el-button>:null}
- <el-button type="text" onClick={() => this.toPrint(row, 2)}>
- 打印
- </el-button>
- getWebsit(){
- getWebsit({type: 'C'}).then(res => {
- this.websitList = res.data
+ formItems() { },
+ filterArr() {
+ return function (arr, size) {
+ //判断如果不是数组(就没有length),或者size没有传值,size小于1,就返回空数组
+ if (!arr.length || !size || size < 1) return []
+ let [start, end, result] = [null, null, []]
+ for (let i = 0; i < Math.ceil(arr.length / size); i++) {
+ start = i * size
+ end = start + size
+ result.push(arr.slice(start, end))
+ return result
- // 点击打印
- async toPrint(row, type) {
- this.getWebsit()
- let pagingData = []
- const { data } = await getDetail({
- salesId: row.salesId
- pagingData = this.filterArr(data.items,4)
- // 初始化模板,否则生成的模板叠加
- hiprint.init()
- this.hiprintTemplate = new hiprint.PrintTemplate()
- // 兼容批量打印
- // let params = !type ? this.filterArr() : [row.salesId]
- let len = pagingData.length
- let loadingLen = len
- // 使用 i-- 提升for效率
- this.$startLoading()
- for (let i = 0; i < len; i++) {
try {
- let websitHtml = ''
- let html = ''
- let num = 0
- let totalAmount = 0
- pagingData[i].forEach(item=>{
- totalAmount = (Number(item.saleAmount)*100 + totalAmount*100)/100
- num += Number(item.salesQty)
- html += `
+ pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'P' }, { 'param': 'a.flag', "compare": "=", "value": this.flag })
+ this.id = row.salesId
+ return row.flag == 'PAY_NOT_TAKE'
+ print: {
+ this.toPrint(row, 2)
+ getWebsit() {
+ getWebsit({ type: 'C' }).then(res => {
+ this.websitList = res.data
+ // 点击打印
+ async toPrint(row, type) {
+ this.getWebsit()
+ let pagingData = []
+ const { data } = await getDetail({
+ salesId: row.salesId
+ pagingData = this.filterArr(data.items, 4)
+ // 初始化模板,否则生成的模板叠加
+ hiprint.init()
+ this.hiprintTemplate = new hiprint.PrintTemplate()
+ // 兼容批量打印
+ // let params = !type ? this.filterArr() : [row.salesId]
+ let len = pagingData.length
+ let loadingLen = len
+ // 使用 i-- 提升for效率
+ this.$startLoading()
+ for (let i = 0; i < len; i++) {
+ let websitHtml = ''
+ let html = ''
+ let num = 0
+ let totalAmount = 0
+ pagingData[i].forEach(item => {
+ totalAmount = (Number(item.saleAmount) * 100 + totalAmount * 100) / 100
+ num += Number(item.salesQty)
+ html += `
<tr align="center">
<td>${item.goodsName || ''}</td>
<td>${item.goodsSpecification || ''}</td>
@@ -202,61 +225,61 @@ export default {
<td></td>
</tr>
`
- this.websitList.slice(0,5).forEach(item=>{
- websitHtml += `
+ this.websitList.slice(0, 5).forEach(item => {
+ websitHtml += `
<div style="display: flex;font-size: 14px;margin-bottom: 6px;">
<div style="margin-right: 10px;">${item.name}</div>
<div style="margin-right: 10px;">${item.websitPhone}</div>
<div>地址: ${item.address}</div>
- // 模板基础配置
- this.panel = this.hiprintTemplate.addPrintPanel({
- height: 140,
- width: 241,
- fontFamily: '黑体',
- fontSize: 13,
- paperFooter: 340,
- paperHeader: 10,
- paperNumberDisabled: true
- // 获取收款单模板和基础配置
- this.panel.addPrintHtml({
- options: {
- width: 633,
- top: 30,
- left: 20,
- content: this.setTableDom(data,html,websitHtml,totalAmount,num,len,i)
+ // 模板基础配置
+ this.panel = this.hiprintTemplate.addPrintPanel({
+ height: 140,
+ width: 241,
+ fontFamily: '黑体',
+ fontSize: 13,
+ paperFooter: 340,
+ paperHeader: 10,
+ paperNumberDisabled: true
+ // 获取收款单模板和基础配置
+ this.panel.addPrintHtml({
+ options: {
+ width: 633,
+ top: 30,
+ left: 20,
+ content: this.setTableDom(data, html, websitHtml, totalAmount, num, len, i)
+ loadingLen--
+ console.log(999, error)
+ this.$endLoading()
+ return
- loadingLen--
- console.log(999,error)
- this.$endLoading()
- return
- if (loadingLen === 0) {
- console.log(333)
- // 预览打印内容
- this.$refs.preView.show(this.hiprintTemplate, this.panel)
- // 打印模板
- setTableDom(data,html,websitHtml,totalAmount,num,length,page) {
- return `
+ if (loadingLen === 0) {
+ console.log(333)
+ // 预览打印内容
+ this.$refs.preView.show(this.hiprintTemplate, this.panel)
+ // 打印模板
+ setTableDom(data, html, websitHtml, totalAmount, num, length, page) {
+ return `
<div style="font-family:'黑体';font-size: 16px;">
<div style="display: flex;justify-content: space-between;align-items: center;">
<div style="width: 28%;"></div>
<h1 style="text-align:center;margin: 10px 0;">${data.websitName}销售单</h1>
- <div>共 ${length}页 第 ${page+1} 页</div>
+ <div>共 ${length}页 第 ${page + 1} 页</div>
<div style="display: flex;justify-content: space-between;">
@@ -265,7 +288,7 @@ export default {
<div style="display: flex;justify-content: space-between;font-size: 16px;margin: 10px 0;">
<div>客户: ${data.workerName}</div>
- <div>摘要: ${data.payType == 'CASH'?'现金':'微信'}</div>
+ <div>摘要: ${data.payType == 'CASH' ? '现金' : '微信'}</div>
<div style="display: flex;justify-content: space-between;font-size: 16px;margin-bottom: 10px;">
<div>联系电话: ${data.workerMobile}</div>
@@ -318,29 +341,30 @@ export default {
- handleRefreshList() {
- this.recordSelected = []
- handleInitPrint() {
- this.$nextTick(() => {
- this.initPrint()
+ handleRefreshList() {
+ this.recordSelected = []
+ handleInitPrint() {
+ this.$nextTick(() => {
+ this.initPrint()
@@ -1,20 +1,20 @@
- <template-page v-show="!formDialog" ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="50"
- <el-radio-button label="SAVE">已保存</el-radio-button>
- <el-radio-button label="OK">已审核</el-radio-button>
+ :table-events="tableEvents" :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters"
+ <el-radio-button label="SAVE">已保存</el-radio-button>
+ <el-radio-button label="OK">已审核</el-radio-button>
- <auxiliaryAdjustPriceOrderDetail :id="id" @back="backList" :formType="formDialogType" :title="'辅材调价单' + formDialogTitles[formDialogType]"></auxiliaryAdjustPriceOrderDetail>
+ <auxiliaryAdjustPriceOrderDetail :id="id" @back="backList" :formType="formDialogType"
+ :title="'辅材调价单' + formDialogTitles[formDialogType]"></auxiliaryAdjustPriceOrderDetail>
@@ -26,119 +26,131 @@ import import_mixin from '@/components/template/import_mixin.js'
-import { listPageV2,pageExport } from "@/api/auxiliaryFittings/auxiliaryAdjustPriceOrder";
+import { listPageV2, pageExport } from "@/api/auxiliaryFittings/auxiliaryAdjustPriceOrder";
- components: { TemplatePage, ImageUpload, auxiliaryAdjustPriceOrderDetail },
+ components: { TemplatePage, ImageUpload, auxiliaryAdjustPriceOrderDetail },
- if (this.flag) {
- pam.params.push({ "param": "a.flag", "compare": "=", "value": this.flag })
- {row.flag == 'SAVE'?<el-button type="text" onClick={() => {
- this.id = row.sheetId
- }}>编辑</el-button>:null}
- {row.flag == 'OK'?<el-button type="text" onClick={() => {
- this.formDialogType = 2
- }}>详情</el-button>:null}
+ if (this.flag) {
+ pam.params.push({ "param": "a.flag", "compare": "=", "value": this.flag })
+ this.id = row.sheetId
+ return row.flag == 'OK'
- <auxiliarySalesOrderDetail :id="id" @back="backList" :formType="formDialogType" :title="'辅材销售订单' + formDialogTitles[formDialogType]"></auxiliarySalesOrderDetail>
+ <auxiliarySalesOrderDetail :id="id" @back="backList" :formType="formDialogType"
+ :title="'辅材销售订单' + formDialogTitles[formDialogType]"></auxiliarySalesOrderDetail>
@@ -30,167 +30,189 @@ import import_mixin from '@/components/template/import_mixin.js'
- components: { TemplatePage, ImageUpload, auxiliarySalesOrderDetail, printPreview },
+ components: { TemplatePage, ImageUpload, auxiliarySalesOrderDetail, printPreview },
- pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'M' },{'param': 'a.flag', "compare": "=", "value": this.flag})
+ pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'M' }, { 'param': 'a.flag', "compare": "=", "value": this.flag })
+ confirmDelivery: {
<td>${item.goodsName}</td>
<td>${item.goodsSpecification}</td>
@@ -202,61 +224,61 @@ export default {
@@ -265,7 +287,7 @@ export default {
@@ -318,29 +340,30 @@ export default {
- <el-radio-group v-model="retState" size="mini" @change="changeType">
+ <el-radio-group v-model="retState" size="mini" @change="changeType">
- <auxiliarySalesReturnOrderDetail :id="id" @back="backList" :formType="formDialogType" :title="'辅材销售退货单' + formDialogTitles[formDialogType]"></auxiliarySalesReturnOrderDetail>
+ <auxiliarySalesReturnOrderDetail :id="id" @back="backList" :formType="formDialogType"
+ :title="'辅材销售退货单' + formDialogTitles[formDialogType]"></auxiliarySalesReturnOrderDetail>
@@ -29,126 +28,135 @@ import import_mixin from '@/components/template/import_mixin.js'
-import { listPageV2,pageExport, getDetail, add, edit, submit } from "@/api/auxiliaryFittings/auxiliarySalesReturnOrder";
+import { listPageV2, pageExport, getDetail, add, edit, submit } from "@/api/auxiliaryFittings/auxiliarySalesReturnOrder";
- components: { TemplatePage, ImageUpload, auxiliarySalesReturnOrderDetail },
- retState: ''
+ components: { TemplatePage, ImageUpload, auxiliarySalesReturnOrderDetail },
+ retState: ''
- pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'M' },{'param': 'a.ret_state', "compare": "=", "value": this.retState})
- this.id = row.salesRetId
- }}>查看</el-button>
- {row.retState == 'WAIT'?<el-button type="text" onClick={() => {
+ pam.params.push({ "param": "a.goods_type", "compare": "=", "value": 'M' }, { 'param': 'a.ret_state', "compare": "=", "value": this.retState })
+ this.id = row.salesRetId
+ Confirm: {
+ return row.retState == 'WAIT'
@@ -38,7 +38,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="购买方" :required="true" style="padding-bottom: 1px;">
- <el-radio-group v-model="formData.buyPeople">
+ <el-radio-group v-model="formData.buyPeople" @change="formData.workerName = '';formData.workerMobile=''">
<el-radio :disabled="formData.flag != 'SAVE' && formType!=0" label="WORKER">内部师傅</el-radio>
<el-radio :disabled="formData.flag != 'SAVE' && formType!=0" label="CUSTOMER">客户</el-radio>
</el-radio-group>
@@ -270,6 +270,7 @@
workerMobile: [
{ required: true, message: '请输入联系电话', trigger: 'blur' },
+ { required: true, message: '请输入联系电话', trigger: 'change' },
{ pattern:/^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/, message: '电话号码格式不正确', trigger: 'blur' }
workerName: [
@@ -296,6 +296,7 @@
{ required: true, message: `请输入联系电话`, trigger: 'blur' },
+ { required: true, message: `请输入联系电话`, trigger: 'change' },
@@ -1,17 +1,22 @@
- <div class="page">
- </template-page>
- <div class="detail" v-if="formDialog">
- <auxiliarySalesOrderDetail v-if="orderSource == 'M_SALES'" :id="id" @back="backList" :formType="2" title="辅材销售订单详情"></auxiliarySalesOrderDetail>
- <attachmentSalesOrderDetail v-if="orderSource == 'P_SALES'" :id="id" @back="backList" :formType="2" title="配件销售订单详情"></attachmentSalesOrderDetail>
- <auxiliarySalesReturnOrderDetail v-if="orderSource == 'SALES_RET'" :id="id" @back="backList" :formType="2" title="辅材销售退货单详情"></auxiliarySalesReturnOrderDetail>
- <attachmentNewReturnDetail v-if="orderSource == 'NEW_PARTS_RET'" :id="id" @back="backList" :formType="2" title="配件新件返还详情"></attachmentNewReturnDetail>
- <attachmentOldReturnDetail v-if="orderSource == 'OLD_PARTS_RET'" :id="id" @back="backList" :formType="2" title="配件旧件返还详情"></attachmentOldReturnDetail>
+ <div class="page">
+ :table-events="tableEvents" :operationColumnWidth="50" :options-evens-group="optionsEvensGroup"
+ </template-page>
+ <div class="detail" v-if="formDialog">
+ <auxiliarySalesOrderDetail v-if="orderSource == 'M_SALES'" :id="id" @back="backList" :formType="2" title="辅材销售订单详情">
+ </auxiliarySalesOrderDetail>
+ <attachmentSalesOrderDetail v-if="orderSource == 'P_SALES'" :id="id" @back="backList" :formType="2"
+ title="配件销售订单详情"></attachmentSalesOrderDetail>
+ <auxiliarySalesReturnOrderDetail v-if="orderSource == 'SALES_RET'" :id="id" @back="backList" :formType="2"
+ title="辅材销售退货单详情"></auxiliarySalesReturnOrderDetail>
+ <attachmentNewReturnDetail v-if="orderSource == 'NEW_PARTS_RET'" :id="id" @back="backList" :formType="2"
+ title="配件新件返还详情"></attachmentNewReturnDetail>
+ <attachmentOldReturnDetail v-if="orderSource == 'OLD_PARTS_RET'" :id="id" @back="backList" :formType="2"
+ title="配件旧件返还详情"></attachmentOldReturnDetail>
@@ -23,10 +28,11 @@ import auxiliarySalesReturnOrderDetail from '../components/auxiliarySalesReturnO
import attachmentNewReturnDetail from '../components/attachmentNewReturnDetail.vue'
import attachmentOldReturnDetail from '../components/attachmentOldReturnDetail.vue'
-import { listPageV2,pageExport } from "@/api/auxiliaryFittings/transaction";
+import { listPageV2, pageExport } from "@/api/auxiliaryFittings/transaction";
- components: { TemplatePage, auxiliarySalesOrderDetail, attachmentSalesOrderDetail, auxiliarySalesReturnOrderDetail, attachmentNewReturnDetail, attachmentOldReturnDetail},
+ components: { TemplatePage, auxiliarySalesOrderDetail, attachmentSalesOrderDetail, auxiliarySalesReturnOrderDetail, attachmentNewReturnDetail, attachmentOldReturnDetail },
// 事件组合
@@ -43,9 +49,9 @@ export default {
// 勾选选中行
recordSelected: [],
/** 表单变量 */
- orderSource: '',
- formDialog: false
+ orderSource: '',
+ formDialog: false
@@ -56,7 +62,7 @@ export default {
methods: {
// 列表请求函数
- getList: listPageV2,
+ getList: listPageV2,
exportList: pageExport,
// 表格列解析渲染数据更改
@@ -67,36 +73,39 @@ export default {
- this.id = row.orderId
- this.orderSource = row.orderSource
- if(row.orderSource){
- this.formDialog = true
- this.$message.warning('订单来源为空!')
+ this.id = row.orderId
+ this.orderSource = row.orderSource
+ if (row.orderSource) {
+ this.formDialog = true
+ this.$message.warning('订单来源为空!')
@@ -1,17 +1,18 @@
- <template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="110"
- <el-radio-group v-model="status" size="mini" @change="changeType">
- <el-radio-button label="0">待发放</el-radio-button>
- <el-radio-button label="1">已发放</el-radio-button>
- <el-dialog title="详情" width="80%" :modal="true" :visible.sync="formDialog" :show-close="true" :close-on-click-modal="false" :modal-append-to-body="false" @close="formDialog = false;formData = {}">
+ :operationColumnWidth="110" :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters"
+ <el-radio-group v-model="status" size="mini" @change="changeType">
+ <el-radio-button label="0">待发放</el-radio-button>
+ <el-radio-button label="1">已发放</el-radio-button>
+ <el-dialog title="详情" width="80%" :modal="true" :visible.sync="formDialog" :show-close="true"
+ :close-on-click-modal="false" :modal-append-to-body="false" @close="formDialog = false; formData = {}">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>提现信息</span>
@@ -19,47 +20,47 @@
<table border="1" style="border-color: #fff;" width="100%" align="center" cellspacing="0" cellpadding="10">
<tr>
<td class="bold" align="center">提现类型</td>
- <td>{{formData.type == 1?'销售提现':'服务提现'}}</td>
+ <td>{{ formData.type == 1 ? '销售提现' : '服务提现' }}</td>
<td class="bold" align="center">单据编号</td>
- <td>{{formData.id}}</td>
+ <td>{{ formData.id }}</td>
<td class="bold" align="center">所属商户</td>
- <td>{{formData.companyWechatName}}</td>
+ <td>{{ formData.companyWechatName }}</td>
<td class="bold" align="center">发放状态</td>
- <td>{{formData.status == 0?'待发放':formData.status == 1?'已发放':''}}</td>
+ <td>{{ formData.status == 0 ? '待发放' : formData.status == 1 ? '已发放' : '' }}</td>
<td class="bold" align="center">师傅姓名</td>
- <td>{{formData.workerName}}</td>
+ <td>{{ formData.workerName }}</td>
<td class="bold" align="center">师傅编号</td>
- <td>{{formData.workerId}}</td>
+ <td>{{ formData.workerId }}</td>
<td class="bold" align="center">师傅身份证号</td>
- <td>{{formData.idcard}}</td>
+ <td>{{ formData.idcard }}</td>
<td class="bold" align="center">师傅联系电话</td>
- <td>{{formData.workerMobile}}</td>
+ <td>{{ formData.workerMobile }}</td>
<td class="bold" align="center">申请时间</td>
- <td>{{formData.createTime}}</td>
+ <td>{{ formData.createTime }}</td>
<td class="bold" align="center">账户类型</td>
- <td>{{formData.accountType}}</td>
+ <td>{{ formData.accountType }}</td>
<td class="bold" align="center">开户银行</td>
- <td>{{formData.bank}}</td>
+ <td>{{ formData.bank }}</td>
<td class="bold" align="center">开户支行</td>
- <td>{{formData.subBank}}</td>
+ <td>{{ formData.subBank }}</td>
<td class="bold" align="center">持卡人</td>
- <td>{{formData.bankUserName}}</td>
+ <td>{{ formData.bankUserName }}</td>
<td class="bold" align="center">银行卡号</td>
- <td>{{formData.bankNo}}</td>
+ <td>{{ formData.bankNo }}</td>
<td class="bold" align="center">提现金额</td>
- <td>¥{{formData.amount}}</td>
+ <td>¥{{ formData.amount }}</td>
<td class="bold" align="center">备注</td>
- <td colspan="5">{{formData.remark}}</td>
+ <td colspan="5">{{ formData.remark }}</td>
<td class="bold" align="center"><span style="color: red;">*</span>转账凭证</td>
@@ -88,33 +89,37 @@
</thead>
<tbody>
- <tr v-for="(item,index) in formData.withdrawalOrderItems" :key="index">
- <td align="center">{{item.id}}</td>
- <td align="center">{{item.goodsType == 'M'?'辅材':'配件'}}</td>
+ <tr v-for="(item, index) in formData.withdrawalOrderItems" :key="index">
+ <td align="center">{{ item.id }}</td>
+ <td align="center">{{ item.goodsType == 'M' ? '辅材' : '配件' }}</td>
<!-- <td align="center">{{item.chargeType=='ACC'?'配件物料':item.chargeType=='SERV'?'服务收费':''}}</td> -->
- <td align="center">{{item.num}}</td>
+ <td align="center">{{ item.num }}</td>
<!-- <td align="center">{{item.goodsAmount}}</td> -->
- <td align="center">{{item.totalPrice}}</td>
- <td align="center">{{item.settlementType == 'OWN'?'自有':item.settlementType == 'OUT'?'外购':''}}</td>
- <td align="center">{{item.workerAmount}}</td>
- <td align="center">{{item.websitAmount}}</td>
+ <td align="center">{{ item.totalPrice }}</td>
+ <td align="center">{{ item.settlementType == 'OWN' ? '自有' : item.settlementType == 'OUT' ? '外购' : '' }}</td>
+ <td align="center">{{ item.workerAmount }}</td>
+ <td align="center">{{ item.websitAmount }}</td>
<!-- <tr>
<td style="color: #ffffff;">隐身</td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr> -->
- <td align="center">总计</td><td></td></td><td>
- <td align="center">{{totalAmount || 0}}</td><td></td>
- <td align="center">{{workerAmount || 0}}</td>
- <td align="center">{{websitAmount || 0}}</td>
+ <td align="center">总计</td>
+ <td></td>
+ </td>
+ <td>
+ <td align="center">{{ totalAmount || 0 }}</td>
+ <td align="center">{{ workerAmount || 0 }}</td>
+ <td align="center">{{ websitAmount || 0 }}</td>
</tbody>
</table>
</el-card>
- <el-button size="mini" @click="formDialog = false;formData = {}">取 消</el-button>
- <el-button size="mini" v-if="formData.status == 0" type="primary" @click="update(formData.id)">设为已发</el-button>
+ <el-button size="mini" @click="formDialog = false; formData = {}">取 消</el-button>
+ <el-button size="mini" v-if="formData.status == 0" type="primary" @click="update(formData.id)">设为已发</el-button>
</el-dialog>
@@ -125,150 +130,157 @@ import import_mixin from '@/components/template/import_mixin.js'
-import { listPageV2,pageExport, getDetail, update } from "@/api/auxiliaryFittings/salesWithdraw";
+import { listPageV2, pageExport, getDetail, update } from "@/api/auxiliaryFittings/salesWithdraw";
- optionsEvensGroup: [],
- formData: {},
- status: '',
- totalAmount: 0,
- workerAmount: 0,
- websitAmount: 0
+ optionsEvensGroup: [],
+ formData: {},
+ status: '',
+ totalAmount: 0,
+ workerAmount: 0,
+ websitAmount: 0
- if (this.status || this.status >= 0) {
- pam.params.push({ "param": "a.status", "compare": "=", "value": this.status })
+ if (this.status || this.status >= 0) {
+ pam.params.push({ "param": "a.status", "compare": "=", "value": this.status })
openForm() {
formCancel() {
- this.totalAmount = 0
- this.workerAmount = 0
- this.websitAmount = 0
- getDetail({ id: row.id }).then(res => {
- Object.assign(this.formData, res.data,{
- certImg:res.data?.certImg ? res.data?.certImg?.split(",").map(item=>({url:item})) : []
- res.data.withdrawalOrderItems.forEach(item=>{
- this.totalAmount += item.totalPrice
- this.workerAmount += item.workerAmount
- this.websitAmount += item.websitAmount
- {row.status == 0? <el-button type="text" onClick={() => {
- }}>设为已发</el-button>:null}
- update(id){
- if(this.formData.certImg.length == 0){
- return this.$message.warning('请先上传转账凭证!');
- this.$confirm('请确认是否设为已发放, 是否继续?', '提示', {
- update({ id, certImg: this.formData.certImg.map(item=>item.url).join(",") }).then(res => {
- this.$message({ type: 'success', message: '设为已发放成功!' })
+ this.totalAmount = 0
+ this.workerAmount = 0
+ this.websitAmount = 0
+ getDetail({ id: row.id }).then(res => {
+ certImg: res.data?.certImg ? res.data?.certImg?.split(",").map(item => ({ url: item })) : []
+ res.data.withdrawalOrderItems.forEach(item => {
+ this.totalAmount += item.totalPrice
+ this.workerAmount += item.workerAmount
+ this.websitAmount += item.websitAmount
+ setSent: {
+ return row.status == 0
+ update(id) {
+ if (this.formData.certImg.length == 0) {
+ return this.$message.warning('请先上传转账凭证!');
+ this.$confirm('请确认是否设为已发放, 是否继续?', '提示', {
+ update({ id, certImg: this.formData.certImg.map(item => item.url).join(",") }).then(res => {
+ this.$message({ type: 'success', message: '设为已发放成功!' })
- .bold{
- width: 160px;
- font-weight: bold;
- background-color: #f0f0f0;
+.bold {
+ width: 160px;
+ font-weight: bold;
+ background-color: #f0f0f0;
@@ -1,19 +1,20 @@
- <template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="120"
- <el-radio-button label="WAIT">待结算</el-radio-button>
- <el-radio-button label="WAIT_ING">可提现</el-radio-button>
- <el-radio-button label="ING">提现中</el-radio-button>
- <el-radio-button label="OVER">已提现</el-radio-button>
+ :operationColumnWidth="120" :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters"
+ <el-radio-button label="WAIT">待结算</el-radio-button>
+ <el-radio-button label="WAIT_ING">可提现</el-radio-button>
+ <el-radio-button label="ING">提现中</el-radio-button>
+ <el-radio-button label="OVER">已提现</el-radio-button>
<span>基础信息</span>
@@ -21,81 +22,83 @@
<td class="bold" align="center">关联工单号</td>
- <td>{{formData.workerOrderId}}</td>
+ <td>{{ formData.workerOrderId }}</td>
<td class="bold" align="center">结算单号</td>
- <td>{{formData.settlementOrderId}}</td>
+ <td>{{ formData.settlementOrderId }}</td>
<td class="bold" align="center">工单品牌</td>
- <td>{{formData.brand}}</td>
+ <td>{{ formData.brand }}</td>
<td class="bold" align="center">客户姓名</td>
- <td>{{formData.userName}}</td>
+ <td>{{ formData.userName }}</td>
<td class="bold" align="center">客户电话</td>
- <td>{{formData.userMobile}}</td>
+ <td>{{ formData.userMobile }}</td>
- <td>{{formData.identity}}</td>
+ <td>{{ formData.identity }}</td>
<td class="bold" align="center">订单金额</td>
- <td>{{formData.totalAmount}}</td>
+ <td>{{ formData.totalAmount }}</td>
<td class="bold" align="center">销售类型</td>
- <td>{{formData.settlementType == 'OWN'?'自由':formData.settlementType == 'OUT'?'外购':''}}</td>
+ <td>{{ formData.settlementType == 'OWN' ? '自由' : formData.settlementType == 'OUT' ? '外购' : '' }}</td>
<td class="bold" align="center">创建人</td>
- <td>{{formData.createBy}}</td>
+ <td>{{ formData.createBy }}</td>
<td class="bold" align="center">创建时间</td>
<td class="bold" align="center">支付状态</td>
- <td>{{formData.payStatus == 'CANCEL'?'取消':formData.payStatus == 'PAID'?'已支付':formData.payStatus == 'WAIT'?'待支付':''}}</td>
+ <td>{{ formData.payStatus == 'CANCEL' ? '取消' : formData.payStatus == 'PAID' ? '已支付' : formData.payStatus ==
+ 'WAIT' ? '待支付' : '' }}</td>
<td class="bold" align="center">支付订单号</td>
- <td>{{formData.orderId}}</td>
+ <td>{{ formData.orderId }}</td>
<td class="bold" align="center">支付时间</td>
- <td>{{formData.payTime}}</td>
+ <td>{{ formData.payTime }}</td>
<td class="bold" align="center">分账单号</td>
<td class="bold" align="center">分账状态</td>
- <td>{{formData.status == 'WAIT'?'待结算':formData.status == 'WAIT_ING'?'可提现':formData.status == 'ING'?'提现中':formData.status == 'OVER'?'已提现':''}}</td>
+ <td>{{ formData.status == 'WAIT' ? '待结算' : formData.status == 'WAIT_ING' ? '可提现' : formData.status ==
+ 'ING' ? '提现中' : formData.status == 'OVER' ? '已提现' : '' }}</td>
<td class="bold" align="center">分账金额</td>
- <td>{{formData.amount}}</td>
+ <td>{{ formData.amount }}</td>
<td class="bold" align="center">分账时间</td>
- <td>{{formData.settlementTime}}</td>
+ <td>{{ formData.settlementTime }}</td>
<td class="bold" align="center">师傅分账金额</td>
- <td>{{formData.workerAmount}}</td>
+ <td>{{ formData.workerAmount }}</td>
<td class="bold" align="center">师傅分账金额手续费</td>
- <td>{{formData.workerProceAmount}}</td>
+ <td>{{ formData.workerProceAmount }}</td>
<td class="bold" align="center">商户分账金额</td>
- <td>{{formData.websitAmount}}</td>
+ <td>{{ formData.websitAmount }}</td>
<td class="bold" align="center">商户分账金额手续费</td>
- <td>{{formData.websitProceAmount}}</td>
+ <td>{{ formData.websitProceAmount }}</td>
<td class="bold" align="center">操作人</td>
- <td>{{formData.updateBy}}</td>
+ <td>{{ formData.updateBy }}</td>
<td class="bold" align="center">操作时间</td>
- <td>{{formData.updateTime}}</td>
+ <td>{{ formData.updateTime }}</td>
@@ -117,33 +120,40 @@
- <tr v-for="(item,index) in formData.settlementOrderItemList" :key="index">
- <td align="center">{{item.goodsName}}</td>
- <td align="center">{{item.chargeType=='ACC'?(item.goodsType == 'M'?'辅材':'配件')+'物料':item.chargeType=='SERV'?'服务收费':''}}</td>
- <td align="center">{{item.goodsAmount}}</td>
- <td align="center">{{item.totalAmount}}</td>
+ <tr v-for="(item, index) in formData.settlementOrderItemList" :key="index">
+ <td align="center">{{ item.goodsName }}</td>
+ <td align="center">{{ item.chargeType == 'ACC' ? (item.goodsType ==
+ 'M' ? '辅材' : '配件') + '物料' : item.chargeType == 'SERV' ? '服务收费' : '' }}</td>
+ <td align="center">{{ item.goodsAmount }}</td>
+ <td align="center">{{ item.totalAmount }}</td>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
- <td align="center">总计</td><td></td><td></td><td></td>
- <td align="center">{{totalAmount}}</td><td></td>
- <td align="center">{{workerAmount}}</td>
- <td align="center">{{websitAmount}}</td>
+ <td align="center">{{ totalAmount }}</td>
+ <td align="center">{{ workerAmount }}</td>
+ <td align="center">{{ websitAmount }}</td>
- <el-button size="mini" v-if="formData.status == 'WAIT'" type="primary" @click="settleAccounts(formData.settlementOrderId)">确认结算</el-button>
- <el-button size="mini" v-if="formData.status == 'WAIT_ING'" type="primary" @click="withdraw(formData.settlementOrderId)">确认提现</el-button>
+ <el-button size="mini" v-if="formData.status == 'WAIT'" type="primary"
+ @click="settleAccounts(formData.settlementOrderId)">确认结算</el-button>
+ <el-button size="mini" v-if="formData.status == 'WAIT_ING'" type="primary"
+ @click="withdraw(formData.settlementOrderId)">确认提现</el-button>
@@ -154,202 +164,211 @@ import import_mixin from '@/components/template/import_mixin.js'
-import { listPageV2,pageExport, getDetail, refund, settleAccounts, withdraw } from "@/api/auxiliaryFittings/settleAccount";
+import { listPageV2, pageExport, getDetail, refund, settleAccounts, withdraw } from "@/api/auxiliaryFittings/settleAccount";
+ websitAmount: 0,
- name: '批量结算',
- this.batchSettleAccounts()
+ this.optionsEvensAuth("bulkSettlement", {
+ click: this.batchSettleAccounts
- name: '批量提现',
- this.batchWithdraw()
+ ),
+ this.optionsEvensAuth("bulkWithdrawal", {
+ click: this.batchWithdraw
]
- websitAmount: 0,
- getList(p) {
- if (this.status) {
+ getList(p) {
+ if (this.status) {
- getDetail({ id: row.settlementOrderId }).then(res => {
- Object.assign(this.formData, res.data)
- res.data.settlementOrderItemList.forEach(item=>{
- this.totalAmount += (item.totalAmount*100 + this.totalAmount*100)/100
- this.workerAmount = (item.workerAmount*100 + this.workerAmount*100)/100
- this.websitAmount += (item.websitAmount*100 + this.websitAmount*100)/100
- {row.totalAmount > 0? <el-button type="text" onClick={() => {
- this.$confirm('请确认是否退款, 是否继续?', '提示', {
- refund({ id: row.settlementOrderId }).then(res => {
- this.$message({ type: 'success', message: '退款成功!' })
- }}>退款</el-button>:null}
- {row.status == 'WAIT'? <el-button type="text" onClick={() => {
- this.settleAccounts(row.settlementOrderId)
- }}>结算</el-button>:null}
- {row.status == 'WAIT_ING'? <el-button type="text" onClick={() => {
- this.withdraw(row.settlementOrderId)
- }}>提现</el-button>:null}
- batchSettleAccounts(){
- this.settleAccounts(this.recordSelected.map(item=>{return item.settlementOrderId}).join(','))
- settleAccounts(id){
- this.$confirm(`请确认是否结算选中数据, 是否继续?`, '提示', {
- settleAccounts({
- id
- this.$message({ type: 'success', message: `结算成功!` })
- batchWithdraw(){
- this.withdraw(this.recordSelected.map(item=>{return item.settlementOrderId}).join(','))
- withdraw(id){
- this.$confirm(`请确认是否提现选中数据, 是否继续?`, '提示', {
- withdraw({
- this.$message({ type: 'success', message: `提现成功!` })
+ getDetail({ id: row.settlementOrderId }).then(res => {
+ Object.assign(this.formData, res.data)
+ res.data.settlementOrderItemList.forEach(item => {
+ this.totalAmount += (item.totalAmount * 100 + this.totalAmount * 100) / 100
+ this.workerAmount = (item.workerAmount * 100 + this.workerAmount * 100) / 100
+ this.websitAmount += (item.websitAmount * 100 + this.websitAmount * 100) / 100
+ refund: {
+ prompt: "请确认是否退款, 是否继续?",
+ return row.totalAmount > 0
+ refund({ id: row.settlementOrderId }).then(res => {
+ this.$message({ type: 'success', message: '退款成功!' })
+ settlement: {
+ return row.status == 'WAIT'
+ this.settleAccounts(row.settlementOrderId)
+ withdraw: {
+ return row.status == 'WAIT_ING'
+ this.withdraw(row.settlementOrderId)
+ batchSettleAccounts() {
+ this.settleAccounts(this.recordSelected.map(item => { return item.settlementOrderId }).join(','))
+ settleAccounts(id) {
+ this.$confirm(`请确认是否结算选中数据, 是否继续?`, '提示', {
+ settleAccounts({
+ id
+ this.$message({ type: 'success', message: `结算成功!` })
+ batchWithdraw() {
+ this.withdraw(this.recordSelected.map(item => { return item.settlementOrderId }).join(','))
+ withdraw(id) {
+ this.$confirm(`请确认是否提现选中数据, 是否继续?`, '提示', {
+ withdraw({
+ this.$message({ type: 'success', message: `提现成功!` })
- <template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="80"
- <zj-form-module :title="formDialogTitles[formDialogType]" label-width="100px" :showPackUp="false"
- <el-button size="mini" v-if="formDialogType !== 2" type="primary" @click="formConfirm()">确定</el-button>
+ :operationColumnWidth="80" :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters"
+ <zj-form-module :title="formDialogTitles[formDialogType]" label-width="100px" :showPackUp="false"
+ <el-button size="mini" v-if="formDialogType !== 2" type="primary" @click="formConfirm()">确定</el-button>
@@ -22,23 +22,13 @@ import TemplatePage from '@/components/template/template-page-1.vue'
-import { listPageV2,pageExport, getDetail, add, edit } from "@/api/auxiliaryFittings/supplier";
+import { listPageV2, pageExport, getDetail, add, edit } from "@/api/auxiliaryFittings/supplier";
components: { TemplatePage, ImageUpload },
@@ -52,32 +42,44 @@ export default {
formDialogType: 0,
formDialog: false,
- venderName: '',
- linkName: '',
- linkTel: '',
- address: '',
- zipNo: '',
- email: '',
- www: '',
- telNo: '',
- corporation: '',
- faxNo: '',
- licenseId: '',
- khBank: '',
- bankRow: '',
- accNo: '',
- remark: '',
- venderType: 'M',
- imageUrl: []
+ venderName: '',
+ linkName: '',
+ linkTel: '',
+ address: '',
+ zipNo: '',
+ email: '',
+ www: '',
+ telNo: '',
+ corporation: '',
+ faxNo: '',
+ licenseId: '',
+ khBank: '',
+ bankRow: '',
+ accNo: '',
+ remark: '',
+ venderType: 'M',
+ imageUrl: []
@@ -97,21 +99,21 @@ export default {
md: 12,
isShow: true,
name: 'slot-component',
formItemAttributes: {
label: '状态',
prop: 'status',
rules: [...required]
- <el-radio disabled={this.formDialogType==2} label="ON">启用</el-radio>
- <el-radio disabled={this.formDialogType==2} label="OFF">禁用</el-radio>
+ <el-radio disabled={this.formDialogType == 2} label="ON">启用</el-radio>
+ <el-radio disabled={this.formDialogType == 2} label="OFF">禁用</el-radio>
}, {
@@ -140,28 +142,28 @@ export default {
label: '联系电话',
prop: 'linkTel',
- rules: [...required,...mobile]
+ rules: [...required, ...mobile]
label: '供应类型',
prop: 'venderType',
- <el-radio-group v-model={this.formData.venderType}>
- <el-radio disabled={this.formDialogType==2} label="M">辅材</el-radio>
- <el-radio disabled={this.formDialogType==2} label="P">配件</el-radio>
- <el-radio disabled={this.formDialogType==2} label="A">辅材和配件</el-radio>
+ <el-radio-group v-model={this.formData.venderType}>
+ <el-radio disabled={this.formDialogType == 2} label="M">辅材</el-radio>
+ <el-radio disabled={this.formDialogType == 2} label="P">配件</el-radio>
+ <el-radio disabled={this.formDialogType == 2} label="A">辅材和配件</el-radio>
@@ -273,25 +275,25 @@ export default {
rules: []
- label: '营业执照',
- prop: 'imageUrl',
- <ImageUpload fileList={this.formData.imageUrl} limit={1} isEdit={this.formDialogType !== 2} />
+ label: '营业执照',
+ prop: 'imageUrl',
+ <ImageUpload fileList={this.formData.imageUrl} limit={1} isEdit={this.formDialogType !== 2} />
md: 24,
name: 'el-input',
label: '备注',
prop: 'remark',
@@ -302,62 +304,65 @@ export default {
columnParsing(item, defaultData) {
return defaultData
// 监听勾选变化
getDetail({ id: row.venderId }).then(res => {
- imageUrl:res.data?.imageUrl ? res.data?.imageUrl?.split(",").map(item=>({url:item})) : []
+ imageUrl: res.data?.imageUrl ? res.data?.imageUrl?.split(",").map(item => ({ url: item })) : []
this.formDialogType = 2
- getDetail({ id: row.venderId }).then(res => {
- imageUrl:res.data?.imageUrl? res.data?.imageUrl?.split(",").map(item=>({url:item})) : []
+ getDetail({ id: row.venderId }).then(res => {
@@ -374,9 +379,9 @@ export default {
this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
if (valid) {
([add, edit][this.formDialogType])({
- ...this.formData,
- imageUrl:this.formData.imageUrl.map(item=>item.url).join(",")
+ ...this.formData,
+ imageUrl: this.formData.imageUrl.map(item => item.url).join(",")
this.$message({ type: 'success', message: `${this.formDialogTitles[this.formDialogType]}成功!` })
this.formCancel()
this.$refs.pageRef.refreshList()
@@ -389,7 +394,7 @@ export default {
@@ -0,0 +1,762 @@
+<template>
+ <div class="s-page">
+ <el-page-header @back="goBack" :content="title"></el-page-header>
+ <el-divider></el-divider>
+ <div slot="moreSearch" v-if="formType != 0">
+ <el-radio-group v-model="tabIndex" size="mini" @change="">
+ <el-radio-button :label="1">基础资料</el-radio-button>
+ <el-radio-button :label="2">修改记录</el-radio-button>
+ <template v-if="tabIndex == 1">
+ <el-card class="box-card">
+ <div slot="header" class="clearfix">
+ <span>项目信息</span>
+ <div class="mymain-container">
+ <el-form ref="formData" :rules="rules" :model="formData" label-width="110px" size="small" label-position="left">
+ <el-row :gutter="20" justify="start">
+ <el-col :span="12">
+ <el-form-item label="所属商户" :required="true" >
+ <el-input type="text" :value="companyName" disabled></el-input>
+ </el-form-item>
+ </el-col>
+ <el-form-item label="项目名称" prop="projectName" :required="true" >
+ <el-input type="text" v-model="formData.projectName" :disabled="formType==2" placeholder="请输入"></el-input>
+ <el-form-item label="负责人" prop="manger" :required="true" >
+ <el-input type="text" v-model="formData.manger" :disabled="formType==2" placeholder="请输入"></el-input>
+ <el-form-item label="联系电话" prop="mobile" :required="true">
+ <el-input type="text" v-model="formData.mobile" :disabled="formType==2" placeholder="请输入"></el-input>
+ <el-form-item label="维保时间" prop="dateList" :required="true">
+ <el-date-picker
+ :disabled="formType==2"
+ v-model="formData.dateList"
+ @change="selectDate"
+ value-format="yyyy-MM-dd"
+ type="daterange"
+ range-separator="至"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期">
+ </el-date-picker>
+ <el-form-item label="工单类型" prop="orderSmallTypeText" :required="true">
+ <el-checkbox-group v-model="formData.checkTypeList">
+ <el-checkbox v-for="(item,index) in orderTypeList" :key="index" :label="item">{{item.orderSmallTypeText}}</el-checkbox>
+ </el-checkbox-group>
+ <el-form-item label="包含全部费用" prop="isAllFee" :required="true">
+ <el-radio-group v-model="formData.isAllFee">
+ <el-radio :disabled="formType==2" label="YES">是</el-radio>
+ <el-radio :disabled="formType==2" label="NO">否</el-radio>
+ <el-form-item v-if="formData.isAllFee == 'NO'" label="费用支付方式" prop="feePayMethod" :required="true">
+ <el-radio-group v-model="formData.feePayMethod">
+ <el-radio :disabled="formType==2" label="EXAMINE">审批后结算</el-radio>
+ <el-radio :disabled="formType==2" label="SITE">现场支付</el-radio>
+ <el-col :span="24">
+ <el-form-item label="项目地址" prop="province" :required="true">
+ <el-row>
+ <el-col :span="5" style="margin-right: 12px;">
+ <el-input type="text" v-model="formData.province" disabled placeholder="请选择省"></el-input>
+ <el-input type="text" v-model="formData.city" disabled placeholder="请选择市"></el-input>
+ <el-input type="text" v-model="formData.area" disabled placeholder="请选择区"></el-input>
+ <el-col :span="8">
+ <el-input type="text" v-model="formData.street" disabled placeholder="请选择街道"></el-input>
+ </el-row>
+ <el-form-item label="" prop="address" :required="true">
+ <el-row :gutter="20">
+ <el-col :span="22">
+ <el-input type="text" v-model="formData.address" placeholder="详细地址"></el-input>
+ <el-col :span="2">
+ <geographicalPosi :disabled="formType==2" :formData="this.formData" @selectPosi="selectAddress"/>
+ <el-form-item label="项目说明">
+ <el-input type="textarea" :rows="4" :disabled="formType==2" v-model="formData.remark" placeholder="请输入"></el-input>
+ </el-form>
+ </el-card>
+ <br/>
+ <el-tabs v-model="typeIndex" @change="changeType">
+ <el-tab-pane label="项目设备" name="1"></el-tab-pane>
+ <el-tab-pane label="项目人员" name="2"></el-tab-pane>
+ <el-tab-pane label="服务网点" name="3"></el-tab-pane>
+ </el-tabs>
+ <el-button size="small" v-if="formType!=2" type="primary" @click="add()">新增</el-button>
+ <div class="table">
+ <!-- 项目设备 -->
+ <el-form ref="formData1" :model="formData1">
+ <el-table v-if="typeIndex == 1" :data="formData1.productList" element-loading-text="Loading" border fit highlight-current-row stripe>
+ <el-table-column label="品牌" align="center">
+ <template slot-scope="scope">
+ <el-form-item :prop="'productList.' + scope.$index + '.brand'" :rules="[{ required: true, message: `请选择品牌`, trigger: 'change' }]">
+ <el-select v-model="scope.row.brand" @change="(e)=>{
+ scope.row.brandId = e.id
+ scope.row.brandName = e.brandName
+ }" value-key="id" :disabled="isEdit != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
+ <el-option
+ v-for="item in brandList"
+ :key="item.id"
+ :label="item.brandName"
+ :value="item">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column label="产品大类" align="center">
+ <el-form-item :prop="'productList.' + scope.$index + '.main'" :rules="[{ required: true, message: `请选择产品大类`, trigger: 'change' }]">
+ <el-select v-model="scope.row.main" value-key="categoryId" @change="(e)=>{
+ scope.row.mainId = e.categoryId
+ scope.row.mainName = e.name
+ scope.row.smallName = ''
+ scope.row.smallId = ''
+ scope.row.smallList = e.children?e.children:[]
+ }" :disabled="isEdit != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
+ v-for="item in mainList"
+ :key="item.categoryId"
+ :label="item.name"
+ <el-table-column label="产品小类" align="center">
+ <el-form-item :prop="'productList.' + scope.$index + '.small'" :rules="[{ required: true, message: `请选择产品小类`, trigger: 'change' }]">
+ <el-select v-model="scope.row.small" @focus="()=>{
+ if(!scope.row.main){return this.$message.warning('请先选择产品大类!');}
+ }" @change="(e)=>{
+ scope.row.smallName = e.name
+ scope.row.smallId = e.categoryId
+ scope.row.smallImg = e.imgUrl
+ }" :disabled="isEdit != scope.$index || formType == 2" value-key="categoryId" placeholder="请选择" style="width: 100%;">
+ v-for="item in scope.row.smallList"
+ <el-table-column prop="" align="center" label="系列名称">
+ <el-form-item>
+ <el-input type="text" v-model="scope.row.seriesName" :disabled="isEdit != scope.$index || formType == 2" placeholder="请输入"></el-input>
+ <el-table-column prop="" align="center" label="机型名称">
+ <el-input type="text" v-model="scope.row.productName" :disabled="isEdit != scope.$index || formType == 2" placeholder="请输入"></el-input>
+ <el-table-column align="center" label="设备套数">
+ <el-form-item :prop="'productList.' + scope.$index + '.num'" :rules="[{ required: true, message: `请输入设备套数`, trigger: 'blur' }]">
+ <el-input type="number" v-model="scope.row.num" :disabled="isEdit != scope.$index || formType == 2" placeholder="请输入"></el-input>
+ <el-table-column prop="" align="center" label="内机数量" >
+ <el-input type="number" v-model="scope.row.inNum" :disabled="isEdit != scope.$index || formType == 2" placeholder="请输入"></el-input>
+ <el-table-column prop="" align="center" label="外机数量">
+ <el-input type="number" v-model="scope.row.outNum" :disabled="isEdit != scope.$index || formType == 2" placeholder="请输入"></el-input>
+ <el-table-column label="操作" align="right" width="140">
+ <template slot-scope="scope" v-if="formType != 2">
+ <el-button size="mini" type="primary" v-if="scope.$index != isEdit" @click="isEdit = scope.$index">编辑</el-button>
+ <el-button size="mini" type="danger" @click="del(scope.$index)">删除</el-button>
+ </el-table>
+ <!-- 项目人员 -->
+ <el-form v-if="typeIndex == 2" ref="formData2" :model="formData2" label-width="0" size="small" label-position="left">
+ <el-table :data="formData2.byList" element-loading-text="Loading" border fit highlight-current-row stripe>
+ <el-table-column align="center" label="姓名">
+ <el-form-item :prop="'byList.' + scope.$index + '.name'" :rules="[{ required: true, message: `请输入姓名`, trigger: 'blur' }]">
+ <el-input type="text" v-model="scope.row.name" :disabled="isEdit != scope.$index || formType == 2" placeholder="请输入"></el-input>
+ <el-table-column align="center" label="联系电话" >
+ <el-form-item :prop="'byList.' + scope.$index + '.mobile'"
+ :rules="[{ required: true, message: `请输入联系电话`, trigger: 'blur' },{ pattern:/^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/, message: '电话号码格式不正确', trigger: 'blur' }]">
+ <el-input type="number" v-model="scope.row.mobile" :disabled="isEdit != scope.$index || formType == 2" placeholder="请输入"></el-input>
+ <el-table-column label="费用审批">
+ <el-form-item :prop="'byList.' + scope.$index + '.feeExamine'" :rules="[{ required: true, message: `请选择费用审批`, trigger: 'change' }]">
+ <el-select v-model="scope.row.feeExamine" :disabled="isEdit != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
+ v-for="item in [{id: 'YES',name: '是'},{id: 'NO',name: '否'}]"
+ :value="item.id">
+ <!-- 服务网点 -->
+ <el-form v-if="typeIndex == 3" ref="formData3" :model="formData3" label-width="0" size="small" label-position="left">
+ <el-table :data="formData3.websitData" element-loading-text="Loading" border fit highlight-current-row stripe>
+ <el-table-column align="center" label="网点名称">
+ <el-form-item :prop="'websitData.' + scope.$index + '.websit'" :rules="[{ required: true, message: `请选择网点名称`, trigger: 'change' }]" :required="true">
+ <el-select v-model="scope.row.websit" @change="(e)=>{
+ scope.row.websitId = e.websitId
+ scope.row.websitName = e.name
+ scope.row.linkName = e.linkName
+ scope.row.mobile = e.websitPhone
+ scope.row.address = e.address
+ }" value-key="websitId" :disabled="isEdit != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
+ v-for="item in websitList"
+ :key="item.websitId"
+ <el-table-column prop="" align="center" label="联系人">
+ <el-input type="text" v-model="scope.row.linkName" disabled placeholder="请输入"></el-input>
+ <el-table-column prop="" align="center" label="移动电话" >
+ <el-input type="number" v-model="scope.row.mobile" disabled placeholder="请输入"></el-input>
+ <el-table-column prop="" align="center" label="地址" >
+ <el-input type="text" v-model="scope.row.address" disabled placeholder="请输入"></el-input>
+ <div class="page-footer">
+ <div class="footer">
+ <el-button v-if="formType != 2" size="small" type="primary" @click="confirm()">保存</el-button>
+ <el-button size="small" type="info" @click="goBack">返回</el-button>
+ <template v-else>
+ <span>修改记录</span>
+ <el-table :data="historyList" element-loading-text="Loading" border fit highlight-current-row stripe>
+ <el-table-column prop="" align="center" label="操作类型" ></el-table-column>
+ <el-table-column prop="" align="center" label="操作内容"></el-table-column>
+ <el-table-column prop="" align="center" label="操作人"></el-table-column>
+ <el-table-column prop="" align="center" label="操作时间"></el-table-column>
+</template>
+<script>
+ import { getWebsit } from "@/api/customerManagement";
+ import { lbsAmapRegion } from '@/api/common.js'
+ import geographicalPosi from '@/components/geographicalPosi/index.vue'
+ import { getMainList } from "@/api/workOrder/settlementStandardInstall";
+ import { getBrand } from '@/api/goods'
+ import { getDetail, save } from "@/api/engineeringMaintenance/basicData";
+ import request from '@/utils/request'
+ export default {
+ components: {geographicalPosi},
+ props: ['id','title','formType'],
+ tabIndex: 1,
+ typeIndex: '1',
+ orderTypeList: [],
+ websitList: [],
+ historyList: [],
+ provinceList: [],
+ cityList: [],
+ areaList: [],
+ streetList: [],
+ mainList: [],
+ dateList: [],
+ checkTypeList: [],
+ projectName: '',
+ manger: '',
+ mobile: '',
+ startTime: '',
+ endTime: '',
+ orderSmallTypeText: '安装',
+ isAllFee: 'YES',
+ feePayMethod: 'EXAMINE',
+ province: '',
+ provinceId: '',
+ city: '',
+ cityId: '',
+ area: '',
+ areaId: '',
+ street: '',
+ streetId: '',
+ formData1: {
+ productList: [],
+ formData2: {
+ byList: [],
+ formData3: {
+ websitData: [],
+ isEdit: 0,
+ rules: {
+ projectName: [
+ { required: true, message: '请输入项目名称', trigger: 'blur' },
+ manger: [
+ { required: true, message: '请输入负责人名称', trigger: 'blur' },
+ mobile: [
+ { required: true, message: `请输入联系电话`, trigger: 'blur' },
+ { pattern:/^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/, message: '电话号码格式不正确', trigger: 'blur' }
+ dateList: [
+ { required: true, message: '请选择维保时间', trigger: 'change' }
+ checkTypeList: [
+ { required: true, message: '请选择工单类型', trigger: 'change' }
+ address: [
+ { required: true, message: '请选择详细地址', trigger: 'change' }
+ rules1: {},
+ rules2: {},
+ rules3: {},
+ };
+ filterChildren(){
+ return function(id){
+ let data = []
+ this.mainList.forEach(item=>{
+ if(item.categoryId == id){
+ data = item.children?item.children:[]
+ return data
+ created() {
+ if(this.id){
+ this.getDetail()
+ this.initData()
+ // 返回
+ goBack() {
+ this.$emit('back');
+ async getDetail(){
+ this.formData.checkTypeList = []
+ getDetail({id: this.id}).then( async res => {
+ websit: {websitId: res.data.websitId,name: res.data.websitName},
+ this.formData.dateList = [res.data.startTime,res.data.endTime]
+ for(var item of res.data.productList){
+ item.smallList = await this.filterChildren(item.mainId)
+ item.brand = {id: item.brandId,brandName: item.brandName}
+ item.main = {categoryId: item.mainId,name: item.mainName}
+ item.small = {categoryId: item.smallId,name: item.smallName}
+ // res.data.productList.forEach(item=>{
+ // item.smallList = await that.filterChildren(item.mainId)
+ // item.brand = {id: item.brandId,brandName: item.brandName}
+ // item.main = {categoryId: item.mainId,name: item.mainName}
+ // item.small = {categoryId: item.smallId,name: item.smallName}
+ // })
+ res.data.websitList.map(item=>{
+ item.websit = {websitId: item.websitId,name: item.websitName}
+ res.data.typeList.forEach(item=>{
+ this.formData.checkTypeList.push({
+ id: item.id,
+ orderSmallTypeText: item.orderSmallTypeText
+ this.formData2.byList = res.data.byList
+ this.formData1.productList = res.data.productList
+ this.formData3.websitData = res.data.websitList
+ // this.formData.checkTypeList = res.data.typeList
+ console.log(this.formData.checkTypeList,'123123123')
+ initData(){
+ this.getOrderType()
+ this.getBrandList()
+ this.getMainList()
+ this.getinitlbslist()
+ getOrderType(){
+ request({
+ url: `/order/smalltype/list`,
+ method: 'post',
+ data: {
+ pageNum: 1,
+ pageSize: -1,
+ params: [{param: 'a.is_rp_project_repair',compare: '=', value: 'YES'}]
+ res.data.records.forEach(item=>{
+ data.push({
+ this.orderTypeList = data
+ console.log(this.orderTypeList,'工单类型')
+ getBrandList(){
+ getBrand().then(res => {
+ this.brandList = res.data
+ getMainList(){
+ getMainList({type: 2}).then(res => {
+ this.mainList = res.data
+ getinitlbslist() {
+ // 初始化请求省市区街道下拉选项数据
+ lbsAmapRegion({ pid: 0 }).then(res => {
+ this.provinceList = res.data
+ // 创建工单时获取ip地址定位赋值
+ if (!this.id && this.$IpAdd.province) {
+ var item = this.provinceList.find(item => item.name === this.$IpAdd.province)
+ if (item) {
+ this.formData.provinceId = item.id
+ this.formData.province = item.name
+ if (this.formData.provinceId) {
+ lbsAmapRegion({ pid: this.formData.provinceId }).then(res => {
+ this.cityList = res.data
+ if (!this.id && this.$IpAdd.city) {
+ var item2 = this.cityList.find(item => item.name === this.$IpAdd.city)
+ if (item2) {
+ this.formData.cityId = item2.id
+ this.formData.city = item2.name
+ if (this.formData.cityId) {
+ lbsAmapRegion({ pid: this.formData.cityId }).then(res => {
+ this.areaList = res.data
+ if (this.formData.areaId) {
+ lbsAmapRegion({ pid: this.formData.areaId }).then(res => {
+ this.streetList = res.data
+ selectAddress(data){
+ // 获取定位的省市区街道
+ var { province, city, district, township } = data.data.addressComponent
+ // 获取选中省名称id
+ var { id, name } = this.provinceList.find(item => item.name === province)
+ this.formData.provinceId = id
+ this.formData.province = name
+ // 请求市选项
+ // 赋值市选项
+ // 获取选中市名称id
+ var { id, name } = res.data.find(item => item.name === city)
+ this.formData.cityId = id
+ this.formData.city = name
+ // 请求区选项
+ // 赋值区选项
+ // 获取选中区名称id
+ var { id, name } = res.data.find(item => item.name === district)
+ this.formData.areaId = id
+ this.formData.area = name
+ // 请求街道选项
+ // 赋值街道选项
+ // 获取选中街道名称id
+ var { id, name } = res.data.find(item => item.name === township)
+ this.formData.streetId = id
+ this.formData.street = name
+ // 赋值GPS详细地址
+ this.formData.address = data.name
+ selectDate(e){
+ this.formData.startTime = e[0] + ' 00:00:00'
+ this.formData.endTime = e[1] + ' 23:59:59'
+ getWebsit(){
+ getWebsit({type: 'C'}).then(res => {
+ getCategory(websitId){
+ getCategory({websitId}).then(res => {
+ changeType(){
+ this.isEdit = 0
+ preserveRuleForm(name) {
+ console.log('this.$refs.'+name)
+ let ruleForm = new Promise(function (resolve, reject) {
+ that.$refs[name].validate((valid) => {
+ resolve(true);
+ resolve(false);
+ return ruleForm
+ add(){
+ if(!this.preserveRuleForm('formData' + this.typeIndex)){return false}
+ let name = this.typeIndex == 1?'productList':this.typeIndex == 2?'byList':'websitData'
+ if(this['formData' + this.typeIndex][name].length != 0){this.isEdit += 1}
+ if(this.typeIndex == 1){
+ this['formData' + this.typeIndex][name].push({
+ brand: null,
+ brandId: '',
+ brandName: '',
+ inNum: '',
+ main: null,
+ mainId: '',
+ mainName: '',
+ num: '',
+ outNum: '',
+ productName: '',
+ seriesName: '',
+ small: null,
+ smallId: '',
+ smallName: '',
+ smallImg: ''
+ }else if(this.typeIndex == 2){
+ name: '',
+ feeExamine: ''
+ }else{
+ websit: null,
+ websitId: '',
+ websitName: '',
+ address: ''
+ del(index){
+ let name = this.typeIndex == 1?'productList':this.typeIndex == 3?'byList':'websitData'
+ this['formData' + this.typeIndex][name].splice(index,1)
+ confirm(){
+ this.$refs.formData.validate((valid, invalidFields, errLabels) => {
+ if(that.formData1.productList.length == 0){
+ that.typeIndex = 1
+ return that.$message.error('请添加项目设备信息');
+ if(that.formData2.byList.length == 0){
+ that.typeIndex = 2
+ return that.$message.error('请添加项目人员信息');
+ if(that.formData3.websitData.length == 0){
+ that.typeIndex = 3
+ return that.$message.error('请添加服务网点信息');
+ if(!that.preserveRuleForm('formData1')){
+ return that.typeIndex = 1
+ if(!that.preserveRuleForm('formData2')){
+ return that.typeIndex = 2
+ if(!that.preserveRuleForm('formData3')){
+ return that.typeIndex = 3
+ this.save()
+ save(){
+ this.formData.checkTypeList.forEach(item=>{
+ let params = {
+ byList: this.formData2.byList,
+ productList: this.formData1.productList,
+ websitList: this.formData3.websitData,
+ typeList: data
+ save(params).then(res => {
+ that.$message.success('保存成功!')
+ setTimeout(()=>{
+ that.goBack()
+ },1500)
+</script>
+<style scoped="scoped" lang="scss">
+ .s-page {
+ padding: 20px;
+ background-color: #ffffff;
+ .page-footer {
+ height: 70px;
+ .footer {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ width: 100%;
+ background: #fff;
+ padding: 15px 40px;
+ box-sizing: border-box;
+ transition: all 0.28s;
+ text-align: right;
+ box-shadow: 0 2px 5px 0 rgb(0 0 0 / 50%), 0 2px 5px 0 rgb(0 0 0 / 10%);
+ &.hideSidebar {
+ margin-left: 54px;
+ width: calc(100vw - 54px);
+ &.openSidebar {
+ margin-left: 210px;
+ width: calc(100vw - 210px);
+ .tips {
+ font-size: 12px;
+ color: red;
+ margin-top: 10px;
+</style>
@@ -0,0 +1,179 @@
+ <template-page v-if="!formDialog" ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="200"
+ :options-evens-group="optionsEvensGroup" :moreParameters="moreParameters" :column-parsing="columnParsing"
+ :operation="operation()">
+ <div class="detail" v-else>
+ <detail :id="id" @back="backList" :formType="formDialogType" :title="'工程维保' + formDialogTitles[formDialogType]"></detail>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import import_mixin from '@/components/template/import_mixin.js'
+import ImageUpload from '@/components/file-upload'
+import detail from './detail.vue'
+import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
+import { listPageV2,pageExport, getDetail, save } from "@/api/engineeringMaintenance/basicData";
+export default {
+ components: { TemplatePage, ImageUpload, detail },
+ formDialogTitles: ["新增","编辑", "详情"],
+ id: ''
+ this.addData()
+ if (item.jname === 'imgUrl') {
+ {row.imgUrl ? row.imgUrl.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="cover" style="width:80px;height:80px;" />) : null}
+ // 表格操作列
+ btnType: 'text',
+ this.id = row.id
+ expenseApply: {
+ this.$router.push({
+ name: "workOrderPool",
+ query: {
+ id:row.id,
+ activeName: "SettleAccounts",
+ serviceOrderDetail: {
+ // this.$router.push({
+ // name: "workOrderPool",
+ // query: {
+ // id:row.orderBaseId,
+ // activeName: "SettleAccounts",
+ // }
+ (save)({
+ imgUrl:this.formData.imgUrl.map(item=>item.url).join(",")
+<style lang="scss" scoped>
+ .tab{
+ .page{
<el-dialog title="" width="1000px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
@@ -33,23 +33,12 @@ import selectMember from "@/components/selectComponent/selectMember.vue"
import selectGoods from "@/components/selectComponent/selectGoods.vue"
import { MEMBER_CURRENT_TYPE_FILTER } from "@/filters/index.js"
components: { TemplatePage, selectMember, selectGoods, ImageUpload },
- name: '新增优惠券',
@@ -92,6 +81,20 @@ export default {
isService() {
if (this.formData.receiveCrowd == 3) {
return true;
@@ -467,51 +470,62 @@ export default {
- getCouponDetail({ couponId: row.couponId }).then(res => {
- receiveDate: res.data.obtainStartTime ? [res.data.obtainStartTime, res.data.obtainEndTime] : [],
- activeDate: res.data.activeStartTime ? [res.data.activeStartTime, res.data.activeEndTime] : [],
- imgSrc: res.data.imgSrc ? [{ url: res.data.imgSrc }] : [],
- {row.releaseFlag === 'WAIT' ? <el-button type="text" onClick={() => {
- {row.releaseFlag === 'START' ? <el-popconfirm
- title="确定取消吗?"
- onConfirm={() => {
- changeFlag(row.couponId)
- }}
- >
- <el-button type="text" slot="reference">取消</el-button>
- </el-popconfirm> : null}
- title="确定补发业务员优惠券吗?"
- reissueCoupon(row.couponId)
- <el-button type="text" slot="reference">补发业务员优惠券</el-button>
+ getCouponDetail({ couponId: row.couponId }).then(res => {
+ receiveDate: res.data.obtainStartTime ? [res.data.obtainStartTime, res.data.obtainEndTime] : [],
+ activeDate: res.data.activeStartTime ? [res.data.activeStartTime, res.data.activeEndTime] : [],
+ imgSrc: res.data.imgSrc ? [{ url: res.data.imgSrc }] : [],
+ return row.releaseFlag === 'WAIT'
+ cancel: {
+ prompt: '确定取消吗?',
+ return row.releaseFlag === 'START'
+ changeFlag(row.couponId)
+ reissue: {
+ prompt: '确定补发业务员优惠券吗?',
+ reissueCoupon(row.couponId)
<div slot="moreSearch">
<el-radio-group v-model="type" size="mini" @change="changeType">
<el-radio-button label="">全部</el-radio-button>
@@ -17,31 +17,14 @@
import { closeActivityStatus, openActivityStatus, secKillGoodsActivityListPageV2, secKillGoodsActivityListPageV2Export } from '@/api/seckill'
type: "",
statistics: {},
- name: '添加秒杀活动',
- this.$router.push({
- name: "seckill_add",
- query: {}
@@ -56,6 +39,23 @@ export default {
+ name: "seckill_add",
+ query: {}
@@ -91,32 +91,37 @@ export default {
- <el-popconfirm
- title={`是否确定${row.status ? "关闭" : "开启"}?`}
- (row.status ? closeActivityStatus : openActivityStatus)({ secKillId: row.secKillId }).then(res => {
- this.$message({ type: 'success', message: `${row.status ? "关闭" : "开启"}成功!` })
- <el-button type="text" slot="reference">{row.status ? "关闭" : "开启"}</el-button>
- </el-popconfirm>
- query: {
- id: row.secKillId
+ id: row.secKillId
+ status: {
+ name: ({ row, index, column }) => {
+ return row.status ? "关闭" : "开启"
+ prompt: ({ row, index, column }) => {
+ return `是否确定${row.status ? "关闭" : "开启"}?`
+ (row.status ? closeActivityStatus : openActivityStatus)({ secKillId: row.secKillId }).then(res => {
+ this.$message({ type: 'success', message: `${row.status ? "关闭" : "开启"}成功!` })
@@ -17,10 +17,10 @@
import { secKillGoodsSpecListPageV2, secKillGoodsSpecListPageV2Export, closeGoodsStatus, openGoodsStatus, deleteGoods } from '@/api/seckill'
@@ -83,35 +83,36 @@ export default {
- (row.status ? closeGoodsStatus : openGoodsStatus)({ secKillSpecId: row.secKillSpecId }).then(res => {
- title={`是否确定删除?`}
- deleteGoods({ secKillSpecId: row.secKillSpecId }).then(res => {
- this.$message({ type: 'success', message: `删除成功!` })
- <el-button type="text" slot="reference">删除</el-button>
+ del: {
+ prompt: '确定删除吗?',
+ deleteGoods({ secKillSpecId: row.secKillSpecId }).then(res => {
+ this.$message({ type: 'success', message: `删除成功!` })
+ (row.status ? closeGoodsStatus : openGoodsStatus)({ secKillSpecId: row.secKillSpecId }).then(res => {
@@ -14,7 +14,7 @@
<el-table-column align="center" label="操作" width="200" fixed="right">
- <el-button type="text" @click="toConfigure(scope.row)">配置</el-button>
+ <el-button v-if="$restrict('set')" type="text" @click="toConfigure(scope.row)">配置</el-button>
<el-table-column
@@ -3,7 +3,7 @@
- <el-button size="small" type="primary" icon="el-icon-plus" @click="addOrEdit('add')">添加品牌</el-button>
+ <el-button v-if="$restrict('add')" size="small" type="primary" icon="el-icon-plus" @click="addOrEdit('add')">添加品牌</el-button>
@@ -30,8 +30,8 @@
<el-table-column align="center" label="修改时间" prop="updateTime" min-width="160"></el-table-column>
<el-table-column align="center" label="操作" fixed="right" width="120">
- <el-button type="text" @click="addOrEdit('edit', scope.row.id)">编辑</el-button>
- <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @confirm="handleDelete(scope.row.id)">
+ <el-button type="text" v-if="$restrict('edit')" @click="addOrEdit('edit', scope.row.id)">编辑</el-button>
+ <el-popconfirm v-if="$restrict('del')" style="margin-left: 10px;" title="确定删除吗?" @confirm="handleDelete(scope.row.id)">
<el-button slot="reference" type="text">删除</el-button>
@@ -16,7 +16,7 @@
<div class="page-footer">
<div class="footer" :class="classObj">
- <el-button type="primary" @click="submitMainForm">保存</el-button>
+ <el-button v-if="$restrict('save')" type="primary" @click="submitMainForm">保存</el-button>
@@ -25,8 +25,10 @@
import { mapGetters } from 'vuex'
import { getNotice, addNotice, editNotice } from '@/api/setting'
+ mixins: [operation_mixin],
mainData: {
- :operation="operation">
<el-dialog title="" width="500px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
@@ -23,23 +23,12 @@ import import_mixin from '@/components/template/import_mixin.js'
import { required, mobileRequired, mobile } from '@/components/template/rules_verify.js'
import { chargingStandardTypeList2, getTypeList, getTypeDetail, saveType, deleteType } from "@/api/miniapp";
- name: '添加业务类型',
@@ -62,6 +51,20 @@ export default {
@@ -107,41 +110,44 @@ export default {
- getTypeDetail({ id: row.id }).then(res => {
- title="确定删除吗?"
- deleteType({ id: row.id }).then(res => {
- type: 'success',
- message: `删除成功!`,
+ getTypeDetail({ id: row.id }).then(res => {
+ deleteType({ id: row.id }).then(res => {
+ type: 'success',
+ message: `删除成功!`,
@@ -24,23 +24,12 @@ import { required, mobileRequired, mobile } from '@/components/template/rules_ve
import { chargingStandardList2, getMainList, getMainDetail, saveMain, deleteMain, getTypeList, getBrandList } from "@/api/miniapp";
import { getClassifyList } from '@/api/goods'
- name: '添加收费标准',
@@ -71,6 +60,20 @@ export default {
@@ -193,43 +196,46 @@ export default {
// 表格操作列
- getMainDetail({ id: row.id }).then(res => {
- imageUrl: res.data.imageUrl ? [{ url: res.data.imageUrl }] : [],
- deleteMain({ id: row.id }).then(res => {
+ getMainDetail({ id: row.id }).then(res => {
+ imageUrl: res.data.imageUrl ? [{ url: res.data.imageUrl }] : [],
+ deleteMain({ id: row.id }).then(res => {
<el-radio-button :label="''">全部</el-radio-button>
@@ -32,39 +32,13 @@ import { required, mobileRequired, mobile } from '@/components/template/rules_ve
import { chargingStandardList3, chargingStandardList3PageExport, chargingStandardImport, getMainList, getMainDetail, saveMain, deleteMain, getBrandList } from "@/api/miniapp";
- name: '下载导入模板',
- click: this.handleDownload
- return this.importButton(chargingStandardImport, '导入模板')
- name: '添加',
@@ -94,6 +68,38 @@ export default {
+ this.handleDownload()
+ this.optionsEvensAuth("imp", {
+ return this.importButton(chargingStandardImport, '导入模板')
@@ -216,41 +222,44 @@ export default {
@@ -378,9 +378,7 @@
import { getToken, getUserid } from '@/utils/auth';
import { getTemplate, editAccount, editTemplate, getDetail } from "@/api/merchant";
import { getInfo } from '@/api/user'
-import operation_mixin from '@/components/template/operation_mixin.js'
- mixins: [operation_mixin],
isAdmin: JSON.parse(localStorage.getItem("greemall_user")).type === 2,
- <el-button size="small" type="primary" icon="el-icon-plus" @click="addOrEditParent('add')">添加分类</el-button>
+ <el-button v-if="$restrict('add')" size="small" type="primary" icon="el-icon-plus" @click="addOrEditParent('add')">添加分类</el-button>
<div class="fr">
<el-input placeholder="请输入分类名称进行搜索" v-model="screenForm.keyword" size="small" style="width: 240px;" clearable>
@@ -35,10 +35,10 @@
<el-table-column align="right" label="操作" width="150" fixed="right">
- <el-button type="primary" size="mini" icon="el-icon-plus" v-if="scope.row.level == 1" @click="addOrEditChild('add', scope.row.categoryId)"></el-button>
- <el-button type="primary" size="mini" icon="el-icon-edit" v-if="scope.row.level == 1" @click="addOrEditParent('edit', scope.row.categoryId)"></el-button>
- <el-button type="primary" size="mini" icon="el-icon-edit" v-if="scope.row.level == 2" @click="addOrEditChild('edit', scope.row.categoryId)"></el-button>
- <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @confirm="handleDelete(scope.row.categoryId)" >
+ <el-button type="primary" size="mini" icon="el-icon-plus" v-if="scope.row.level == 1 && $restrict('add')" @click="addOrEditChild('add', scope.row.categoryId)"></el-button>
+ <el-button type="primary" size="mini" icon="el-icon-edit" v-if="scope.row.level == 1 && $restrict('edit')" @click="addOrEditParent('edit', scope.row.categoryId)"></el-button>
+ <el-button type="primary" size="mini" icon="el-icon-edit" v-if="scope.row.level == 2 && $restrict('edit')" @click="addOrEditChild('edit', scope.row.categoryId)"></el-button>
+ <el-popconfirm v-if="$restrict('del')" style="margin-left: 10px;" title="确定删除吗?" @confirm="handleDelete(scope.row.categoryId)" >
<el-button slot="reference" size="mini" icon="el-icon-delete"></el-button>
@@ -65,7 +65,7 @@ export default {
this.optionsEvensAuth("add", {
- this.addData
@@ -75,7 +75,7 @@ export default {
this.optionsEvensAuth("del", {
name: '批量删除',
- this.batchDelete
+ this.batchDelete()
@@ -226,6 +226,7 @@ export default {
operation() {
return this.operationBtn({
edit: {
click: ({ row, index, column }) => {
getBannerDetail({ id: row.id }).then(res => {
@@ -237,6 +238,7 @@ export default {
del: {
prompt: '确定删除吗?',
deleteBanner({ carouselMapId: row.id }).then(() => {
@@ -246,6 +248,7 @@ export default {
status: {
name: ({ row, index, column }) => {
return row.state ? '隐藏' : '显示'
<el-dialog title="" width="1165px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
@@ -34,23 +34,12 @@ import TemplatePage from '@/components/template/template-page-1.vue'
import { freightListPageV2, freightPageExport, deleteFreight, addOrEditFreight, getFreightDetail, getRegionTree, changeFreightStatus } from "@/api/freight";
@@ -76,6 +65,20 @@ export default {
@@ -215,48 +218,46 @@ export default {
- getFreightDetail({ freightTemplateId: row.freightTemplateId }).then(res => {
- {row.status ? <el-popconfirm style="margin-right: 10px;" title="确定禁用吗?"
- changeFreightStatus({ freightTemplateId: row.freightTemplateId, status: false }).then(res => {
- this.$message({ type: 'success', message: '禁用成功!' })
- }}>
- <el-button slot="reference" type="text">禁用</el-button>
- </el-popconfirm> : <el-popconfirm style="margin-right: 10px;" title="确定启用吗?"
- changeFreightStatus({ freightTemplateId: row.freightTemplateId, status: true }).then(res => {
- this.$message({ type: 'success', message: '启用成功!' })
- <el-button slot="reference" type="text">启用</el-button>
- </el-popconfirm>}
- deleteFreight({ freightTemplateId: row.freightTemplateId }).then(() => {
- this.$message({ type: 'success', message: '删除成功!' })
+ getFreightDetail({ freightTemplateId: row.freightTemplateId }).then(res => {
+ deleteFreight({ freightTemplateId: row.freightTemplateId }).then(() => {
+ this.$message({ type: 'success', message: '删除成功!' })
+ return row.status?'禁用':'启用'
+ return `是否${row.status?'禁用':'启用'}?`
+ changeFreightStatus({ freightTemplateId: row.freightTemplateId, status: !row.status }).then(res => {
+ this.$message({ type: 'success', message: `${row.status?'禁用':'启用'}成功!` })
@@ -9,40 +9,12 @@
import { deleteModule, templateListPageV2, templatePageExport } from '@/api/goods'
- name: '添加模块',
- name: "explain_add",
- name: '编辑公共模块',
- name: "explain_common",
@@ -57,6 +29,35 @@ export default {
+ name: "explain_add",
+ this.optionsEvensAuth("explain_common", {
+ name: "explain_common",
@@ -78,34 +79,34 @@ export default {
- id: row.commonTemplateId
- deleteModule({
- commonTemplateId: row.commonTemplateId
+ id: row.commonTemplateId
+ deleteModule({
+ commonTemplateId: row.commonTemplateId
@@ -73,11 +73,11 @@
- <el-button type="primary" icon="el-icon-plus" size="small" @click="addOrEdit('add')">添加商品</el-button>
- <el-button size="small" @click="batchOperation('on')">批量上架</el-button>
- <el-button size="small" @click="batchOperation('off')">批量下架</el-button>
- <el-button size="small" @click="batchOperation('module')">批量设置模块</el-button>
- <el-button size="small" @click="batchOperation('freight')">批量设置运费</el-button>
+ <el-button v-if="$restrict('add')" type="primary" icon="el-icon-plus" size="small" @click="addOrEdit('add')">添加商品</el-button>
+ <el-button v-if="$restrict('batchLaunch')" size="small" @click="batchOperation('on')">批量上架</el-button>
+ <el-button v-if="$restrict('batchRemova')" size="small" @click="batchOperation('off')">批量下架</el-button>
+ <el-button v-if="$restrict('batchSet')" size="small" @click="batchOperation('module')">批量设置模块</el-button>
+ <el-button v-if="$restrict('batchSetfreight')" size="small" @click="batchOperation('freight')">批量设置运费</el-button>
@@ -167,12 +167,12 @@
</template> -->
- <el-button type="primary" size="mini" @click="addOrEdit('edit', scope.row.goodsId)">编辑</el-button>
- <el-popconfirm style="margin-left: 10px; margin-right: 10px" title="确定克隆吗?" @confirm="clone(scope.row.goodsId)" >
+ <el-button v-if="$restrict('edit')" type="primary" size="mini" @click="addOrEdit('edit', scope.row.goodsId)">编辑</el-button>
+ <el-popconfirm v-if="$restrict('clone')" style="margin-left: 10px; margin-right: 10px" title="确定克隆吗?" @confirm="clone(scope.row.goodsId)" >
<el-button slot="reference" type="primary" size="mini">克隆</el-button>
- <el-button type="primary" size="mini" class="tag-read" @click="copy(scope.row.goodsId)" :data-clipboard-text="scope.row.goodsId">复制链接</el-button>
- <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @confirm="delItem(scope.row.goodsId, scope.row.goodsSpecId)" >
+ <el-button v-if="$restrict('copyLink')" type="primary" size="mini" class="tag-read" @click="copy(scope.row.goodsId)" :data-clipboard-text="scope.row.goodsId">复制链接</el-button>
+ <el-popconfirm v-if="$restrict('del')" style="margin-left: 10px;" title="确定删除吗?" @confirm="delItem(scope.row.goodsId, scope.row.goodsSpecId)" >
<el-button slot="reference" size="mini">删除</el-button>
- :operation="operation" :exportList="exportList" :operationColumnWidth="160">
+ :operation="operation()" :exportList="exportList" :operationColumnWidth="160">
@@ -30,23 +30,12 @@ import {
changeNewclassify,
deleteNewclassify
} from "@/api/goods";
@@ -137,53 +140,60 @@ export default {
- name: "newclassify_set",
- item: row
- }}>配置</el-button>
- getNewclassifyDetail({ newsCategoryId: row.goodsNewsCategoryId }).then(res => {
- title={`是否确定${Number(row.status) ? "关闭" : "开启"}?`}
- changeNewclassify({
- goodsNewsCategoryId: row.goodsNewsCategoryId,
- status: Number(row.status) ? 0 : 1,
- this.$message({ type: 'success', message: `${Number(row.status) ? "关闭" : "开启"}成功!` })
- <el-button type="text" slot="reference">{Number(row.status) ? "关闭" : "开启"}</el-button>
- deleteNewclassify({ goodsNewsCategoryId: row.goodsNewsCategoryId }).then(() => {
+ disposition: {
+ name: "newclassify_set",
+ item: row
+ getNewclassifyDetail({ newsCategoryId: row.goodsNewsCategoryId }).then(res => {
+ deleteNewclassify({ goodsNewsCategoryId: row.goodsNewsCategoryId }).then(() => {
+ return Number(row.status) ? "关闭" : "开启"
+ return `是否确定${Number(row.status) ? "关闭" : "开启"}?`
+ changeNewclassify({
+ goodsNewsCategoryId: row.goodsNewsCategoryId,
+ status: Number(row.status) ? 0 : 1,
+ this.$message({ type: 'success', message: `${Number(row.status) ? "关闭" : "开启"}成功!` })
@@ -9,28 +9,12 @@
- name: '添加水印',
- name: "watermark_add",
@@ -45,6 +29,23 @@ export default {
+ name: "watermark_add",
@@ -66,34 +67,34 @@ export default {
@@ -113,13 +113,13 @@
<el-tab-pane label="已关闭" name="CLOSE"></el-tab-pane>
<el-tab-pane label="已超时" name="TIMEOUT"></el-tab-pane>
</el-tabs>
- <el-button class="fl" type="primary" size="small" @click="batchRemark">批量备注</el-button>
+ <el-button v-if="$restrict('batchNote')" class="fl" type="primary" size="small" @click="batchRemark">批量备注</el-button>
<el-button class="fl" type="primary" size="small" @click="batchShipmentVisible = true"
- v-show="tabCurrent == 'DFH'">批量发货</el-button>
- <el-button class="fl" size="small" @click="downloadTemplate" v-show="tabCurrent == 'DFH'">下载批量发货模版</el-button>
+ v-show="tabCurrent == 'DFH' && $restrict('batchDelivery')">批量发货</el-button>
+ <el-button class="fl" size="small" @click="downloadTemplate" v-show="tabCurrent == 'DFH' && $restrict('template')">下载批量发货模版</el-button>
- <el-button size="small" type="primary" @click="handleExport">导出报表</el-button>
+ <el-button v-if="$restrict('exp')" size="small" type="primary" @click="handleExport">导出报表</el-button>
<div class="order-main-container">
@@ -147,8 +147,8 @@
<span><b>商户</b>:{{ order.companyWechatName || '无' }}</span>
<span><b>网点</b>:{{ order.websitName || '无' }}</span>
- <el-link type="primary" :underline="false" @click="showRemark(order.orderId, order.remark)">订单备注</el-link>
- <el-link type="primary" :underline="false" @click="queryDetail(order.orderId)">查看详情</el-link>
+ <el-link type="primary" v-if="$restrict('orderNote')" :underline="false" @click="showRemark(order.orderId, order.remark)">订单备注</el-link>
+ <el-link type="primary" v-if="$restrict('detail')" :underline="false" @click="queryDetail(order.orderId)">查看详情</el-link>
<!-- <el-link type="primary" :underline="false" @click="queryWorkOrder(order.orderId)">订单工单</el-link> -->
@@ -236,25 +236,25 @@
<div class="col-item">
<div class="operate">
<el-popconfirm title="确定取消订单吗?" @confirm="cancelOrder(order.orderId)"
- v-if="order.orderStatus === 'NOPAY'">
+ v-if="order.orderStatus === 'NOPAY' && $restrict('cancelOrder')">
<el-button slot="reference" type="text" size="small">取消订单</el-button>
- <el-button type="text" size="small" v-if="order.orderStatus === 'DFH'"
+ <el-button type="text" size="small" v-if="order.orderStatus === 'DFH' && $restrict('deliver')"
@click="showLogistics(order, 'add')">发货</el-button>
+ <el-button type="text" size="small" v-if="order.orderStatus === 'DFH' && $restrict('changeShippingaddress')"
@click="openAddressForm(order)">修改收货地址</el-button>
<el-button type="text" size="small"
- v-if="order.orderStatus === 'YFH' && order.orderDetails.some(i => i.workOrderType === 'INSTALL')"
+ v-if="order.orderStatus === 'YFH' && $restrict('changeDeliverynumber') && order.orderDetails.some(i => i.workOrderType === 'INSTALL')"
@click="showLogistics(order, 'edit')">
修改快递单号
- v-if="(order.orderStatus === 'YFH' || order.orderStatus === 'OVER') && order.orderDetails.some(i => i.workOrderType === 'INSTALL')"
+ v-if="(order.orderStatus === 'YFH' || order.orderStatus === 'OVER') && $restrict('viewLogistics') && order.orderDetails.some(i => i.workOrderType === 'INSTALL')"
@click="queryLogistics(order.logisticsNo, order.companyCode)">
查看物流
<!-- toWorkOrderDetail(order.orderId) -->
- <el-button type="text" size="small" v-if="order.toWorkOrder"
+ <el-button type="text" size="small" v-if="order.toWorkOrder && $restrict('workOrder_detail')"
@click="queryWorkOrder(order.orderId)">查看工单</el-button>
@@ -90,7 +90,7 @@
@@ -115,8 +115,8 @@
<span><b>发货状态</b>:{{order.logisticsNo ? '已发货' : '未发货'}}</span>
<el-col :xs="24" :sm="24" :lg="4" style="text-align: right;">
- <el-link type="primary" :underline="false" @click="showRemark(order.orderRefundId, order.remark)">订单备注</el-link>
- <el-link type="primary" :underline="false" @click="showDetail(index)">查看详情</el-link>
+ <el-link type="primary" v-if="$restrict('orderNote')" :underline="false" @click="showRemark(order.orderRefundId, order.remark)">订单备注</el-link>
+ <el-link type="primary" v-if="$restrict('detail')" :underline="false" @click="showDetail(index)">查看详情</el-link>
</el-row>
@@ -192,27 +192,27 @@
<div class="operate" v-if="order.orderStatus === 'DSJCL'">
<div>
- <el-button slot="reference" type="text" size="small" @click="changeExamineStatus(order.orderRefundId,'OK')">同意</el-button>
+ <el-button v-if="$restrict('agree')" slot="reference" type="text" size="small" @click="changeExamineStatus(order.orderRefundId,'OK')">同意</el-button>
- <el-button slot="reference" type="text" size="small" @click="changeExamineStatus(order.orderRefundId,'FAIL')">拒绝</el-button>
+ <el-button v-if="$restrict('reject')" slot="reference" type="text" size="small" @click="changeExamineStatus(order.orderRefundId,'FAIL')">拒绝</el-button>
- <el-button type="text" size="small" v-if="order.toWorkOrder" @click="queryWorkOrder(order.orderId)">查看工单</el-button>
+ <el-button type="text" size="small" v-if="order.toWorkOrder && $restrict('workOrder_detail')" @click="queryWorkOrder(order.orderId)">查看工单</el-button>
<div class="operate" v-if="order.orderStatus === 'DSJSH'">
- <div>
+ <div v-if="$restrict('confirmReceipt')">
<el-popconfirm title="确定要收货吗?" @confirm="receiveProd(order.orderRefundId)">
<el-button slot="reference" type="text" size="small">确认收货</el-button>
- <div v-if="order.logisticsNo">
+ <div v-if="order.logisticsNo && $restrict('viewLogistics')">
<el-button type="text" size="small" @click="queryLogistics(order.logisticsNo)">查看物流</el-button>
- <el-button type="text" size="small" v-if="order.toWorkOrder" @click="toWorkOrderDetail(order.orderId)">查看工单</el-button>
+ <el-button type="text" size="small" v-if="order.toWorkOrder && $restrict('workOrder_detail')" @click="toWorkOrderDetail(order.orderId)">查看工单</el-button>
@@ -22,9 +22,10 @@ import TemplatePage from '@/components/template/template-page-1.vue'
import { orderShareListPageV2, orderSharePageExport, settlement, saveRemark } from "@/api/settlement";
@@ -81,31 +82,34 @@ export default {
- Object.assign(this.formData, row)
- }}>备注</el-button>
- {row.orderStatus == 'OVER' && ~["EXCEPTION", "ING"].indexOf(row.status) ? <el-popconfirm
- title="是否确定结算?"
- settlement({
- orderId: row.orderId
- <el-button type="text" slot="reference">结算</el-button>
+ remark: {
+ Object.assign(this.formData, row)
+ account: {
+ return row.orderStatus === 'OVER' && ~["EXCEPTION", "ING"].indexOf(row.status)
+ prompt: '是否确定结算?',
+ settlement({
+ orderId: row.orderId
this.formDialog = true;
@@ -22,23 +22,12 @@ import TemplatePage from '@/components/template/template-page-1.vue'
import { storageListPageV2, storagePageExport, addStorage, deleteStorage, editStorage, getStorageDetail } from "@/api/storage";
@@ -113,31 +116,31 @@ export default {
- getStorageDetail({ id: row.storageId }).then(res => {
- deleteStorage({ storageId: row.storageId }).then(() => {
+ getStorageDetail({ id: row.storageId }).then(res => {
+ deleteStorage({ storageId: row.storageId }).then(() => {
@@ -2,7 +2,7 @@
<template-page v-if="!isShowMemberDetail" ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="200"
<!-- :exportList="exportList" -->
@@ -52,9 +52,10 @@ import import_mixin from '@/components/template/import_mixin.js'
import { memberListPageV2,memberPageExport, memberAudit, memberInner, getWebsit } from "@/api/customerManagement";
import MemberDetail from "@/components/Mall/Member/member-detail";
components: { TemplatePage, MemberDetail },
@@ -113,30 +114,34 @@ export default {
- // 详情返回显示列表
- backListFromMemberDetail() {
- this.queryUser = {}
- this.queryUser = row
- {row.examineStatus != 'WAIT' ?<el-button type="text" onClick={() => {
- this.workerForm.userId = row.userId
- this.dialogVisible = true
- }}>设为工程师</el-button>:null}
- this.$confirm('请确认是否设为分销员, 是否继续?', '提示', {
+ // 详情返回显示列表
+ backListFromMemberDetail() {
+ this.queryUser = {}
+ this.queryUser = row
+ setWorker: {
+ prompt: '请确认是否设为工程师?',
+ this.workerForm.userId = row.userId
+ this.dialogVisible = true
+ setService: {
+ prompt: '请确认是否设为分销员?',
memberInner({
type: 'SERVICE',
userIds: row.userId
@@ -148,11 +153,10 @@ export default {
this.$message.error(res.msg);
- }}>设为分销员</el-button>:null}
<template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="280"
<el-radio-group v-model="examineStatus" size="mini" @change="changeType">
@@ -56,9 +56,10 @@ import TemplatePage from '@/components/template/template-page-1.vue'
import { memberListService2,memberPageExport, getMemberDetail, memberAudit, memberInner, memberInsideInner, getWebsit } from "@/api/distributorManagement";
@@ -218,75 +219,87 @@ export default {
- {row.examineStatus == 'WAIT' ? <el-button type="text" onClick={() => {
- getMemberDetail({ userId: row.userId }).then(res => {
- this.$confirm('请确认是否设为客户, 是否继续?', '提示', {
- memberInner({
- type: 'GENERAL',
- userIds: row.userId
- this.$message({ type: 'success', message: '设为客户成功!' })
- }}>设为客户</el-button>:null}
- this.$confirm(`请确认是否${row.innerr?'取消':'设为'}内部分销员, 是否继续?`, '提示', {
- memberInsideInner({
- innerr: !row.innerr,
- this.$message({ type: 'success', message: (row.innerr?'取消':'设为')+ '内部分销员成功!' })
- }}>{ (row.innerr?'取消':'设为')+'内部分销员'}</el-button>
+ getMemberDetail({ userId: row.userId }).then(res => {
+ return row.examineStatus == 'WAIT'
+ return row.examineStatus != 'WAIT'
+ setCustomer: {
+ prompt: '请确认是否设为客户?',
+ memberInner({
+ type: 'GENERAL',
+ userIds: row.userId
+ this.$message({ type: 'success', message: '设为客户成功!' })
+ return `${row.innerr?'取消':'设为'}内部分销员`
+ return `请确认是否${row.innerr?'取消':'设为'}内部分销员?`
+ memberInsideInner({
+ innerr: !row.innerr,
+ this.$message({ type: 'success', message: (row.innerr?'取消':'设为')+ '内部分销员成功!' })
<template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="200"
@@ -33,9 +33,10 @@ import TemplatePage from '@/components/template/template-page-1.vue'
import { memberListPageV2,memberPageExport, getMemberDetail, memberAudit, memberInner } from "@/api/masterManagement";
@@ -204,65 +205,68 @@ export default {
- getMemberDetail({ id: row.id }).then(res => {
- type: 'SERVICE',
- this.$message({ type: 'success', message: '设为分销员成功!' })
- }}>设为分销员</el-button>
- }}>设为客户</el-button>
+ getMemberDetail({ id: row.id }).then(res => {
+ type: 'SERVICE',
+ this.$message({ type: 'success', message: '设为分销员成功!' })
<template-page ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="50"
@@ -14,30 +14,12 @@ import { downloadFiles } from '@/utils/util'
import { listPageV2,pageExport, del, listImport } from "@/api/workerProfileInit";
- name: '导入师傅资料',
- return this.importButton(listImport, '导入师傅资料')
@@ -57,6 +39,27 @@ export default {
+ this.optionsEvensAuth("download", {
+ this.optionsEvensAuth("import", {
+ return this.importButton(listImport, '导入师傅资料')
@@ -88,31 +91,27 @@ export default {
- this.$confirm(`请确认是否删除该数据, 是否继续?`, '提示', {
- del({
- id: row.id
- }}>删除</el-button>
+ del({
+ id: row.id
@@ -1,5 +1,5 @@
- <template-page ref="pageRef" :getList="getList" :operation="operation" :exportList="exportList"
+ <template-page ref="pageRef" :getList="getList" :operation="operation()" :exportList="exportList"
:columnParsing="columnParsing" :tableAttributes="tableAttributes" :tableEvents="tableEvents"
:screeningAnalysis="screeningAnalysis" :filterMethod="filterMethod" :replaceOrNotMap="true">
@@ -11,11 +11,12 @@ import import_mixin from '@/components/template/import_mixin.js'
import { orderBaseList, orderBaseListExport } from "@/api/workOrderPool.js"
import ywgdjs from "@/assets/ywgdjs.png"
import yjs from "@/assets/yjs.png"
components: {
TemplatePage,
@@ -104,21 +105,23 @@ export default {
- name: "workOrderPool",
- id: row.id,
+ id: row.id,
:options-evens-group="optionsEvensGroup" :more-parameters="moreParameters" :column-parsing="columnParsing"
<el-dialog title="明细" width="100%" :modal="false" :visible.sync="formDialog"
:before-close="() => { formDialog = false }">
@@ -14,6 +14,7 @@
import {
increOrderSettleCountList,
increOrderSettleCountListExport
@@ -21,7 +22,7 @@ import {
import { increOrderSettleList } from "@/api/orderSettleManag.js"
@@ -63,23 +64,24 @@ export default {
- <div class="operation-btns">
- this.detailParams = [...this.detailParams.filter(item => item.param === "a.pay_time"), {
- param: "a.websit_id",
- compare: "=",
- value: row.websitId
- }];
- }}>明细</el-button>
+ this.detailParams = [...this.detailParams.filter(item => item.param === "a.pay_time"), {
+ param: "a.websit_id",
+ compare: "=",
+ value: row.websitId
+ }];
// 明细列表
getList2(p) {
var pam = JSON.parse(JSON.stringify(p))
@@ -1,6 +1,6 @@
- :table-events="tableEvents" :moreParameters="moreParameters" :column-parsing="columnParsing" :operation="operation"
+ :table-events="tableEvents" :moreParameters="moreParameters" :column-parsing="columnParsing" :operation="operation()"
:operationColumnWidth="200" :optionsEvensGroup="optionsEvensGroup">
<el-dialog :title="formTypeName[formType]" width="100%" :modal="false" :visible.sync="formDialog"
@@ -30,6 +30,7 @@ import TemplatePage from '@/components/template/template-page-1.vue'
import { increOrderSettleList, increOrderSettleListExport, increOrderSettleDetail, increOrderSettleConfirm, increOrderSettleRefund } from "@/api/orderSettleManag.js"
storageType: {
@@ -38,27 +39,9 @@ export default {
- optionsEvensGroup: [[
- if (this.recordSelected.length === 0) {
- this.$message.warning('请勾选订单')
- increOrderSettleConfirm(this.recordSelected.map(item => item.id)).then(res => {
- this.$message({ type: 'success', message: `成功!` })
- ]],
@@ -80,6 +63,27 @@ export default {
+ this.optionsEvensAuth("bulkSettlemen", {
+ if (this.recordSelected.length === 0) {
+ this.$message.warning('请勾选订单')
+ increOrderSettleConfirm(this.recordSelected.map(item => item.id)).then(res => {
+ this.$message({ type: 'success', message: `成功!` })
@@ -336,54 +340,63 @@ export default {
- this.formType = 0
- this.getDetail(row.id)
- {["PAID", "REFUND"].includes(row.payStatus) ? (
- pgIncreItemId: row.id,
- }}>服务单明细</el-button>
- ) : null}
- {["PAID"].includes(row.payStatus) && ["ING"].includes(row.settleStatus) && (() => {
- var currentDate = new Date(row.payTime);
- currentDate.setDate(currentDate.getDate() + 7);
- currentDate.setHours(23);
- currentDate.setMinutes(59);
- currentDate.setSeconds(59);
- return currentDate > new Date()
- })() ? (
- title={`是否确定退款?`}
- increOrderSettleRefund({ id: row.id }).then(res => {
- this.$message({ type: 'success', message: `退款成功!` })
- <el-button type="text" slot="reference">退款</el-button>
- {["PAID"].includes(row.payStatus) && ["ING"].includes(row.settleStatus) ? (
- this.formType = 1
- }}>结算</el-button>
+ this.formType = 0
+ this.getDetail(row.id)
+ orderDetail: {
+ return ["PAID", "REFUND"].includes(row.payStatus)
+ pgIncreItemId: row.id,
+ prompt: '是否确定退款?',
+ return ["PAID"].includes(row.payStatus) && ["ING"].includes(row.settleStatus) && (() => {
+ var currentDate = new Date(row.payTime);
+ currentDate.setDate(currentDate.getDate() + 7);
+ currentDate.setHours(23);
+ currentDate.setMinutes(59);
+ currentDate.setSeconds(59);
+ return currentDate > new Date()
+ })()
+ increOrderSettleRefund({ id: row.id }).then(res => {
+ this.$message({ type: 'success', message: `退款成功!` })
+ return ["PAID"].includes(row.payStatus) && ["ING"].includes(row.settleStatus)
+ this.formType = 1
getDetail(id) {
increOrderSettleDetail({ id }).then(res => {
<el-dialog title="增值服务配置" width="100%" :modal="false" :visible.sync="formDialog" :before-close="formCancel">
<zj-form-container v-if="formDialog" ref="formRef" :form-data="formData" :styleSwitch="false">
@@ -25,6 +25,7 @@ import { increConfigList, increConfigListExport, increConfigDetail, increConfigA
import { getDataDictionary } from '@/api/dataDictionary.js'
@@ -33,20 +34,9 @@ export default {
- name: '新增',
@@ -77,6 +67,20 @@ export default {
@@ -474,16 +478,17 @@ export default {
panduancp() {
this.formData.pgIncreItems.map((row, index) => {
- :exportList="exportList">
+ :exportList="exportList">
@@ -10,125 +10,121 @@ import TemplatePage from '@/components/template/template-page-1.vue'
-import { listPageV2,pageExport } from "@/api/workOrder/appraise";
+import { listPageV2, pageExport } from "@/api/workOrder/appraise";
- appraise_status: ''
- created() {
- if (this.$route.query.type == 1) {
- this.appraise_status = 'C'
- this.appraise_status = ''
- this.$router.push({ name: "appraise", params: {}, query: {} })
- pam.params.push({'param': 'a.appraise_status', "compare": "=", "value": this.appraise_status})
+ mixins: [import_mixin],
+ appraise_status: ''
- if (item.jname === 'id') {
- <div style="padding:0 6px;cursor: pointer;" class={{ 'text-view': true, 'text-view-copy': column.isCopy }}>
- <span style="color:#008dd4;" onClick={() => {
+ if (this.$route.query.type == 1) {
+ this.appraise_status = 'C'
+ this.appraise_status = ''
+ this.$router.push({ name: "appraise", params: {}, query: {} })
+ pam.params.push({ 'param': 'a.appraise_status', "compare": "=", "value": this.appraise_status })
+ if (item.jname === 'id') {
+ <div style="padding:0 6px;cursor: pointer;" class={{ 'text-view': true, 'text-view-copy': column.isCopy }}>
+ <span style="color:#008dd4;" onClick={() => {
name: "workOrderPool",
query: {
- id:row.id,
activeName: "Evaluation",
- }}>{row.id}</span>
- {column.isCopy ? (
- <i
- style="color:#008dd4;"
- class={['el-icon-document-copy', column.columnCopyClass]}
- data-clipboard-text={row[column.columnAttributes.prop]}
- ></i>
+ }}>{row.id}</span>
+ {column.isCopy ? (
+ <i
+ style="color:#008dd4;"
+ class={['el-icon-document-copy', column.columnCopyClass]}
+ data-clipboard-text={row[column.columnAttributes.prop]}
+ ></i>
+ ) : null}
+ defaultData.columnAttributes.width = 200
- defaultData.columnAttributes.width = 200
- if (item.jname === 'appraiseImgUrl') {
- <div style="cursor: pointer;display: flex;justify-content: center;">
- {row.appraiseImgUrl ? row.appraiseImgUrl.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;cursor: pointer;" />) : null}
- if (item.jname === 'appraiseContent') {
- <span>{row.appraiseContent}</span>
+ if (item.jname === 'appraiseImgUrl') {
+ <div style="cursor: pointer;display: flex;justify-content: center;">
+ {row.appraiseImgUrl ? row.appraiseImgUrl.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;cursor: pointer;" />) : null}
+ if (item.jname === 'appraiseContent') {
+ <span>{row.appraiseContent}</span>
- <el-dialog title="" width="500px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
+ <el-dialog title="" width="500px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
-import { listPageV2,pageExport, getDetail, add, edit, del } from "@/api/workOrder/assessmentItemAllocation";
+import { listPageV2, pageExport, getDetail, add, edit, del } from "@/api/workOrder/assessmentItemAllocation";
@@ -52,17 +42,29 @@ export default {
- type: 'REWARD',
- name: '',
- amount: '',
+ type: 'REWARD',
+ amount: '',
@@ -92,21 +94,21 @@ export default {
label: '考核类型',
prop: 'type',
- <el-radio-group v-model={this.formData.type}>
- <el-radio disabled={this.formDialogType==2} label="REWARD">奖励</el-radio>
- <el-radio disabled={this.formDialogType==2} label="PUNISH">惩罚</el-radio>
+ <el-radio-group v-model={this.formData.type}>
+ <el-radio disabled={this.formDialogType == 2} label="REWARD">奖励</el-radio>
+ <el-radio disabled={this.formDialogType == 2} label="PUNISH">惩罚</el-radio>
@@ -117,20 +119,20 @@ export default {
prop: 'amount',
- <el-input v-model={this.formData.amount} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
+ <el-input v-model={this.formData.amount} type="number" placeholder="请输入"></el-input><span style="margin-left: 10px;">元</span>
}]
@@ -141,38 +143,36 @@ export default {
- <el-button type="text" style="color: #FF0000" onClick={() => {
- this.$confirm('请确认是否删除该数据, 是否继续?', '提示', {
+ prompt: "请确认是否删除该数据, 是否继续?",
@@ -201,7 +201,7 @@ export default {
-import { listPageV2,pageExport, getDetail, save, del } from "@/api/workOrder/orderType";
+import { listPageV2, pageExport, getDetail, save, del } from "@/api/workOrder/orderType";
@@ -52,7 +42,7 @@ export default {
companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
@@ -60,11 +50,24 @@ export default {
orderType: '',
status: true,
sortNum: '',
- imgUrl: []
+ imgUrl: [],
+ isRpProjectRepair: 'NO'
@@ -84,7 +87,7 @@ export default {
name: 'el-select',
- options: [{label: '安装',value: 'INSTALL'},{label: '维修',value: 'REPAIR'}],
+ options: [{ label: '安装', value: 'INSTALL' }, { label: '维修', value: 'REPAIR' }],
attributes: { placeholder: '请选择' },
label: '所属业务线',
@@ -101,11 +104,11 @@ export default {
prop: 'orderSmallTypeText',
- },{
@@ -115,22 +118,41 @@ export default {
var { value } = props
return (
<el-radio-group v-model={this.formData.status}>
- <el-radio disabled={this.formDialogType==2} label={true}>启用</el-radio>
- <el-radio disabled={this.formDialogType==2} label={false}>禁用</el-radio>
+ <el-radio disabled={this.formDialogType==2} label={true}>启用</el-radio>
+ <el-radio disabled={this.formDialogType==2} label={false}>禁用</el-radio>
)
- attributes: { placeholder: '排序数字越小越靠前', type: 'number' },
- label: '排序',
- prop: 'sortNum',
+ attributes: { placeholder: '排序数字越小越靠前', type: 'number' },
+ label: '排序',
+ prop: 'sortNum',
+ label: '是否工程维保',
+ prop: 'isRpProjectRepair',
+ <el-radio-group v-model={this.formData.isRpProjectRepair}>
+ <el-radio disabled={this.formDialogType==2} label="YES">是</el-radio>
+ <el-radio disabled={this.formDialogType==2} label="NO">否</el-radio>
@@ -153,61 +175,58 @@ export default {
- if (item.jname === 'imgUrl') {
- {row.imgUrl ? row.imgUrl.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="cover" style="width:80px;height:80px;" />) : null}
- imgUrl:res.data?.imgUrl? res.data?.imgUrl?.split(",").map(item=>({url:item})) : []
+ imgUrl: res.data?.imgUrl ? res.data?.imgUrl?.split(",").map(item => ({ url: item })) : []
@@ -224,9 +243,9 @@ export default {
(save)({
- imgUrl:this.formData.imgUrl.map(item=>item.url).join(",")
+ imgUrl: this.formData.imgUrl.map(item => item.url).join(",")
@@ -239,7 +258,7 @@ export default {
@@ -1,7 +1,8 @@
- :operation="operation" :exportList="exportList" :replaceOrNotMap="true">
+ :column-parsing="columnParsing" :operation="operation()" :exportList="exportList" :replaceOrNotMap="true"
+ expCode="exp_az">
@@ -10,338 +11,355 @@ import TemplatePage from '@/components/template/template-page-1.vue'
-import { listPageV2,pageExport, add, edit, del, getMainList, getTypeList } from "@/api/workOrder/settlementStandardInstall";
+import { listPageV2, pageExport, add, edit, del, getMainList, getTypeList } from "@/api/workOrder/settlementStandardInstall";
import { thousands } from '@/utils/common'
- editIndex: null,
- mainList: [],
- smallList: [],
- typeList: []
- created(){
- this.getMainList()
- this.getTypeList()
- this.editIndex = null
+ editIndex: null,
+ smallList: [],
+ typeList: []
- if (item.jname === 'typeName') {
- return this.editIndex == index?(
- <div class="redbordererr">
- <el-form-item prop={`tableData.${index}.type`} rules={[{required: true, message: '工单类型不能为空', trigger: 'blur'}]}>
- <el-select value={{orderSmallTypeText:row.typeName,id: row.type}} value-key="id" placeholder="请选择"
- onInput={(val)=>{
- row.type = val.id
- row.typeName = val.orderSmallTypeText
- this.typeList.map((item, index) => {
- return <el-option key={item.id} label={item.orderSmallTypeText} value={item}></el-option>
- </el-select>
- </el-form-item>
- ):(<div style="padding: 6px;">{row.typeName}</div>)
+ this.optionsEvensAuth("add_az", {
- if (item.jname === 'parentCategoryName') {
- <el-form-item prop={`tableData.${index}.parentCategoryId`} rules={[{required: true, message: '产品大类不能为空', trigger: 'blur'}]}>
- <el-select value={{categoryId:row.parentCategoryId,name: row.parentCategoryName}} value-key="categoryId" placeholder="请选择"
- row.parentCategoryId=val.categoryId
- row.parentCategoryName=val.name
+ this.getTypeList()
+ this.editIndex = null
+ if (item.jname === 'typeName') {
+ return this.editIndex == index ? (
+ <div class="redbordererr">
+ <el-form-item prop={`tableData.${index}.type`} rules={[{ required: true, message: '工单类型不能为空', trigger: 'blur' }]}>
+ <el-select value={{ orderSmallTypeText: row.typeName, id: row.type }} value-key="id" placeholder="请选择"
+ onInput={(val) => {
+ row.type = val.id
+ row.typeName = val.orderSmallTypeText
+ }}>
+ {
+ this.typeList.map((item, index) => {
+ return <el-option key={item.id} label={item.orderSmallTypeText} value={item}></el-option>
+ ) : (<div style="padding: 6px;">{row.typeName}</div>)
+ if (item.jname === 'parentCategoryName') {
+ <el-form-item prop={`tableData.${index}.parentCategoryId`} rules={[{ required: true, message: '产品大类不能为空', trigger: 'blur' }]}>
+ <el-select value={{ categoryId: row.parentCategoryId, name: row.parentCategoryName }} value-key="categoryId" placeholder="请选择"
+ row.parentCategoryId = val.categoryId
+ row.parentCategoryName = val.name
row.categoryName = ''
row.categoryId = ''
- this.smallList = [...[{name: '通用', categoryId: '0'}],...(val.children?val.children:[])]
+ this.smallList = [...[{ name: '通用', categoryId: '0' }], ...(val.children ? val.children : [])]
}}>
- this.mainList.map((item, index) => {
- return <el-option key={item.categoryId} label={item.name} value={item}></el-option>
- ):(<div style="padding: 6px;">{row.parentCategoryName}</div>)
- if (item.jname === 'categoryName') {
- return this.editIndex == index? (
- <el-form-item prop={`tableData.${index}.categoryId`} rules={[{required: true, message: '产品小类不能为空', trigger: 'blur'}]}>
- <el-select value={{categoryId: row.categoryId,name: row.categoryName}} value-key="categoryId" placeholder="请选择"
- row.categoryName=val.name
- row.categoryId=val.categoryId
+ this.mainList.map((item, index) => {
+ return <el-option key={item.categoryId} label={item.name} value={item}></el-option>
+ ) : (<div style="padding: 6px;">{row.parentCategoryName}</div>)
+ if (item.jname === 'categoryName') {
+ <el-form-item prop={`tableData.${index}.categoryId`} rules={[{ required: true, message: '产品小类不能为空', trigger: 'blur' }]}>
+ <el-select value={{ categoryId: row.categoryId, name: row.categoryName }} value-key="categoryId" placeholder="请选择"
+ row.categoryName = val.name
+ row.categoryId = val.categoryId
+ this.smallList.map((item, index) => {
+ return <el-option key={item.id} label={item.name} value={item}></el-option>
+ ) : (<div style="padding: 6px;">{row.categoryName}</div>)
+ if (item.jname === 'label') {
+ <el-form-item prop={`tableData.${index}.label`} rules={[{ required: true, message: '功率不能为空', trigger: 'blur' }]}>
+ <el-input type="text" value={row.label} placeholder="请输入"
+ row.label = val
+ </el-input>
+ ) : (<div style="padding: 6px;">{row.label}</div>)
+ if (item.jname === 'normAmount') {
+ <el-form-item prop={`tableData.${index}.normAmount`} rules={[{ required: true, message: '结算标准不能为空', trigger: 'blur' }]}>
+ <el-input type="text" value={row.normAmount} placeholder="请输入"
+ row.normAmount = val
+ ) : (<div style="padding: 6px;">{thousands(row.normAmount)}</div>)
+ if (item.jname === 'remark') {
+ <el-form-item prop={`tableData.${index}.remark`}>
+ <el-input type="text" value={row.remark} placeholder="请输入"
+ row.remark = val
- this.smallList.map((item, index) => {
- return <el-option key={item.id} label={item.name} value={item}></el-option>
+ ) : (<div style="padding: 6px;">{row.remark}</div>)
+ edit_az: {
+ return row.id
+ return this.editIndex == index ? '确定' : '编辑'
+ this.$refs.pageRef.tableForm().validate((valid) => {
+ if (this.editIndex != index) {
+ this.mainList.forEach(item => {
+ if (item.categoryId == row.parentCategoryId) {
+ this.smallList = [...[{ name: '通用', categoryId: '0' }], ...(item.children ? item.children : [])]
- ):(<div style="padding: 6px;">{row.categoryName}</div>)
- if (item.jname === 'label') {
- <el-form-item prop={`tableData.${index}.label`} rules={[{required: true, message: '功率不能为空', trigger: 'blur'}]}>
- <el-input type="text" value={row.label} placeholder="请输入"
- row.label=val
- </el-input>
- ):(<div style="padding: 6px;">{row.label}</div>)
- if (item.jname === 'normAmount') {
- <el-form-item prop={`tableData.${index}.normAmount`} rules={[{required: true, message: '结算标准不能为空', trigger: 'blur'}]}>
- <el-input type="text" value={row.normAmount} placeholder="请输入"
- row.normAmount=val
- ):(<div style="padding: 6px;">{thousands(row.normAmount)}</div>)
- if (item.jname === 'remark') {
- <el-form-item prop={`tableData.${index}.remark`}>
- <el-input type="text" value={row.remark} placeholder="请输入"
- row.remark=val
- ):(<div style="padding: 6px;">{row.remark}</div>)
- {row.id?<el-button type="text" onClick={() => {
- this.$refs.pageRef.tableForm().validate((valid) => {
- if(this.editIndex != index){
- this.mainList.forEach(item =>{
- if(item.categoryId == row.parentCategoryId){
- this.smallList = [...[{name: '通用', categoryId: '0'}],...(item.children?item.children:[])]
+ this.editIndex = index
+ this.edit(row)
- this.editIndex = index
- this.edit(row)
- console.log('error submit!!');
- return false;
+ console.log('error submit!!');
+ return false;
- }}>{this.editIndex == index?'确定':'编辑'}</el-button>:null}
- {!row.id?<el-button type="text" onClick={() => {
- this.add(row)
+ save_az: {
+ return !row.id
+ this.add(row)
- }}>保存</el-button>:null}
- row.id?this.$confirm('请确认是否删除该数据, 是否继续?', '提示', {
+ del_az: {
+ if (row.id) {
+ this.$refs.pageRef.deleteRowData(0);
+ getMainList() {
+ getMainList({ type: 2 }).then(res => {
+ this.mainList = [...[{ name: '通用', categoryId: '0' }], ...res.data]
+ console.log(this.mainList)
+ getTypeList() {
+ getTypeList({ pageNum: 1, pageSize: -1, params: [{ param: 'a.order_type', compare: '=', value: 'INSTALL' }, { param: 'a.status', compare: '=', value: true }] }).then(res => {
+ this.typeList = res.data.records
+ this.editIndex = 0
+ this.$refs.pageRef.insertionData(0, {
+ settleNormType: 'INSTALL',
+ typeName: '',
+ type: '',
+ categoryName: '',
+ categoryId: '',
+ parentCategoryName: '',
+ parentCategoryId: '',
+ label: '',
- }): this.$refs.pageRef.deleteRowData(0);this.editIndex = null
- getMainList(){
- getMainList({type: 2}).then(res => {
- this.mainList = [...[{name: '通用', categoryId: '0'}],...res.data]
- console.log(this.mainList)
- getTypeList(){
- getTypeList({pageNum: 1,pageSize: -1,params: [{param: 'a.order_type',compare: '=',value: 'INSTALL'},{param: 'a.status',compare: '=',value: true}]}).then(res => {
- this.typeList = res.data.records
- this.editIndex = 0
- this.$refs.pageRef.insertionData(0,{
- settleNormType: 'INSTALL',
- typeName: '',
- type: '',
- categoryName: '',
- categoryId: '',
- parentCategoryName: '',
- parentCategoryId: '',
- label: '',
- add(row){
- add({
- typeName: row.typeName,
- type: row.type,
- parentCategoryName: row.parentCategoryName,
- parentCategoryId: row.parentCategoryId,
- categoryName: row.categoryName,
- categoryId: row.categoryId,
- label: row.label,
- normAmount: row.normAmount,
- remark: row.remark
- if(res.code ==200){
- this.$message({ type: 'success', message: `保存成功!` })
- edit(row){
- edit({
+ add(row) {
+ add({
+ typeName: row.typeName,
+ type: row.type,
+ parentCategoryName: row.parentCategoryName,
+ parentCategoryId: row.parentCategoryId,
+ categoryName: row.categoryName,
+ categoryId: row.categoryId,
+ label: row.label,
+ normAmount: row.normAmount,
+ remark: row.remark
+ this.$message({ type: 'success', message: `保存成功!` })
+ edit(row) {
+ edit({
- .redbordererr {
- ::v-deep .el-form-item {
- margin: 0 !important;
- overflow: hidden;
+.redbordererr {
+ ::v-deep .el-form-item {
+ margin: 0 !important;
+ overflow: hidden;
+ expCode="exp_qt">
@@ -11,250 +12,267 @@ import import_mixin from '@/components/template/import_mixin.js'
import { del } from "@/api/workOrder/settlementStandardInstall";
-import { listPageV2,pageExport, add, edit } from "@/api/workOrder/settlementStandardOther";
+import { listPageV2, pageExport, add, edit } from "@/api/workOrder/settlementStandardOther";
- <el-form-item prop={`tableData.${index}.typeName`} rules={[{required: true, message: '其他费用类型不能为空', trigger: 'blur'}]}>
- <el-input type="text" value={row.typeName} placeholder="请输入"
- row.typeName=val
- row.type=val
- <el-form-item prop={`tableData.${index}.normAmount`} rules={[{required: true, message: '单价不能为空', trigger: 'blur'}]}>
+ this.optionsEvensAuth("add_qt", {
+ <el-form-item prop={`tableData.${index}.typeName`} rules={[{ required: true, message: '其他费用类型不能为空', trigger: 'blur' }]}>
+ <el-input type="text" value={row.typeName} placeholder="请输入"
+ row.typeName = val
+ row.type = val
+ <el-form-item prop={`tableData.${index}.normAmount`} rules={[{ required: true, message: '单价不能为空', trigger: 'blur' }]}>
+ edit_qt: {
+ save_qt: {
+ del_qt: {
+ settleNormType: 'OTHER',
- settleNormType: 'OTHER',
- add(row).then(res => {
- this.$message({ type: 'success', message: `编辑成功!` })
+ add(row).then(res => {
+ this.$message({ type: 'success', message: `编辑成功!` })
+ :column-parsing="columnParsing" :operation="operation()" :exportList="exportList" :replaceOrNotMap="true" expCode="exp_wx">
@@ -11,366 +11,384 @@ import import_mixin from '@/components/template/import_mixin.js'
import { del, getMainList, getTypeList } from "@/api/workOrder/settlementStandardInstall";
-import { listPageV2,pageExport, add, edit } from "@/api/workOrder/settlementStandardRepair";
+import { listPageV2, pageExport, add, edit } from "@/api/workOrder/settlementStandardRepair";
- <el-select value-key="id" value={{orderSmallTypeText:row.typeName,id: row.type}} placeholder="请选择"
+ this.optionsEvensAuth("add_wx", {
- <el-select value={{categoryId:row.parentCategoryId,name: row.parentCategoryName}} value-key="name" placeholder="请选择"
+ <el-select value-key="id" value={{ orderSmallTypeText: row.typeName, id: row.type }} placeholder="请选择"
+ <el-select value={{ categoryId: row.parentCategoryId, name: row.parentCategoryName }} value-key="name" placeholder="请选择"
- <el-select value={{categoryId: row.categoryId,name: row.categoryName}} value-key="name" placeholder="请选择"
+ <el-select value={{ categoryId: row.categoryId, name: row.categoryName }} value-key="name" placeholder="请选择"
- <el-form-item prop={`tableData.${index}.label`} rules={[{required: true, message: '质保类型不能为空', trigger: 'blur'}]}>
- <el-select value={row.label} placeholder="请选择"
+ <el-form-item prop={`tableData.${index}.label`} rules={[{ required: true, message: '质保类型不能为空', trigger: 'blur' }]}>
+ <el-select value={row.label} placeholder="请选择"
- [{id: 'INSIDE',name: '保内'},{id: 'OUT',name: '保外'}].map((item, index) => {
- return <el-option key={item.id} label={item.name} value={item.id}></el-option>
- if (item.jname === 'repairAmount') {
- <el-form-item prop={`tableData.${index}.repairAmount`} rules={[{required: true, message: '上门票不能为空', trigger: 'blur'}]}>
- <el-input type="text" value={row.repairAmount} placeholder="请输入"
- row.repairAmount=val
- ):(<div style="padding: 6px;">{thousands(row.repairAmount)}</div>)
- <el-form-item prop={`tableData.${index}.normAmount`} rules={[{required: true, message: '维修费结算比例不能为空', trigger: 'blur'}]}>
- <div style="display:flex;">
+ [{ id: 'INSIDE', name: '保内' }, { id: 'OUT', name: '保外' }].map((item, index) => {
+ return <el-option key={item.id} label={item.name} value={item.id}></el-option>
+ if (item.jname === 'repairAmount') {
+ <el-form-item prop={`tableData.${index}.repairAmount`} rules={[{ required: true, message: '上门票不能为空', trigger: 'blur' }]}>
+ <el-input type="text" value={row.repairAmount} placeholder="请输入"
+ row.repairAmount = val
</el-input>
- ):(<div style="padding: 6px;">{row.normAmount} %</div>)
- row = Object.assign(row,{
- label: row.label =='保内'?'INSIDE':'OUT'
+ ) : (<div style="padding: 6px;">{thousands(row.repairAmount)}</div>)
+ <el-form-item prop={`tableData.${index}.normAmount`} rules={[{ required: true, message: '维修费结算比例不能为空', trigger: 'blur' }]}>
+ <div style="display:flex;">
+ ) : (<div style="padding: 6px;">{row.normAmount} %</div>)
+ edit_wx: {
+ row = Object.assign(row, {
+ label: row.label == '保内' ? 'INSIDE' : 'OUT'
+ save_wx: {
+ del_wx: {
+ getTypeList({ pageNum: 1, pageSize: -1, params: [{ param: 'a.order_type', compare: '=', value: 'REPAIR' }, { param: 'a.status', compare: '=', value: true }] }).then(res => {
+ settleNormType: 'REPAIR',
+ repairAmount: '',
- this.mainList = res.data
- getTypeList({pageNum: 1,pageSize: -1,params: [{param: 'a.order_type',compare: '=',value: 'REPAIR'},{param: 'a.status',compare: '=',value: true}]}).then(res => {
- settleNormType: 'REPAIR',
- repairAmount: '',
- repairAmount: row.repairAmount,
+ repairAmount: row.repairAmount,
+ <zj-page-container>
<div class="tab">
<el-radio-group v-model="tabType" size="small">
<el-radio-button label="install">安装费用结算标准</el-radio-button>
@@ -7,10 +7,12 @@
<el-radio-button label="other">其他费用结算标准</el-radio-button>
- <install v-if="tabType == 'install'"></install>
- <repair v-if="tabType == 'repair'"></repair>
- <other v-if="tabType == 'other'"></other>
+ <zj-page-fill>
+ <install v-if="tabType == 'install'"></install>
+ <repair v-if="tabType == 'repair'"></repair>
+ <other v-if="tabType == 'other'"></other>
+ </zj-page-fill>
+ </zj-page-container>
@@ -18,25 +20,26 @@ import install from './components/install'
import repair from './components/repair'
import other from './components/other'
- components: { install, repair, other },
- tabType: 'install'
- computed: {},
- methods: {}
+ components: { install, repair, other },
+ tabType: 'install'
+ computed: {},
+ methods: {}
@@ -1,253 +0,0 @@
-<template>
- :operation="operation()">
-</template>
-<script>
-import TemplatePage from '@/components/template/template-page-1.vue'
-import import_mixin from '@/components/template/import_mixin.js'
-import ImageUpload from '@/components/file-upload'
-import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
-import { listPageV2,pageExport, getDetail, save } from "@/api/workOrder/basicData";
-export default {
- mixins: [import_mixin, operation_mixin],
- orderSmallTypeText: '',
- orderType: '',
- status: true,
- sortNum: '',
- optionsEvensGroup() {
- return [
- this.optionsEvensAuth("add", {
- name: 'el-select',
- attributes: { placeholder: '请选择' },
- label: '所属业务线',
- prop: 'orderType',
- attributes: { placeholder: '请输入工单类型', },
- label: '工单类型',
- prop: 'orderSmallTypeText',
- label: '上传图片',
- prop: 'imgUrl',
- <ImageUpload fileList={this.formData.imgUrl} fileType={['image']} limit={1} isEdit={this.formDialogType !== 2} />
- <div style="color: #EA8000">上传后在小程序首页自助服务展示</div>
- operation() {
- return this.operationBtn({
- edit: {
- click: ({ row, index, column }) => {
- detail: {
- expenseApply: {
- serviceOrderDetail: {
- (save)({
-}
-</script>
-<style lang="scss" scoped>
-</style>
- <zj-form-module :title="formDialogTitles[formDialogType]" label-width="110px" :showPackUp="false"
- <el-button size="mini" v-if="formDialogType !== 2" type="primary" @click="formConfirm()">提交</el-button>
+ <zj-form-module :title="formDialogTitles[formDialogType]" label-width="110px" :showPackUp="false"
+ <el-button size="mini" v-if="formDialogType !== 2" type="primary" @click="formConfirm()">提交</el-button>
@@ -22,373 +22,376 @@ import TemplatePage from '@/components/template/template-page-1.vue'
-import { listPageV2,pageExport, getDetail, add, edit, del, getExamine } from "@/api/workOrder/rewardsPunishmentsOrder";
+import { listPageV2, pageExport, getDetail, add, edit, del, getExamine } from "@/api/workOrder/rewardsPunishmentsOrder";
import { getWorker } from "@/api/auxiliaryFittings/auxiliarySalesOrder";
- type: JSON.parse(localStorage.getItem('greemall_user')).type, //type=1商户, type=0网点
- websit: {},
- websitName: '',
- websitId: '',
- worker: {},
- workerId: '',
- workerName: '',
- mobile: '',
- idcard: '',
- examineProjectName: '',
- examineProjectId: '',
- examineProjectType: '',
- examineProjectAmount: '',
- examineProject: {},
- orderBaseId: '',
- fileUrl: [],
- websitList: [],
- workerList: [],
- examineList: []
- isShow: this.type==1,
- attributes: { placeholder: '请输入网点名称',},
- label: '网点名称',
- prop: 'websitId',
- <el-select v-model={this.formData.websit} disabled={this.formDialogType!=0} value-key="websitId" onChange={(e)=>{
- this.formData.websitId = e.websitId
- this.formData.websitName = e.name
- this.formData.worker = {}
- this.formData.workerId = ''
- this.formData.workerName = ''
- this.formData.idcard = ''
- this.formData.mobile = ''
- this.getWorker()
- }} placeholder="请选择" style="width: 100%;">
- this.websitList.map((item, index) => {
- return <el-option key={item.websitId} label={item.name} value={item}></el-option>
- isShow: this.type==0,
- attributes: { placeholder: '请输入网点名称', disabled: true },
- prop: 'websitName',
- attributes: { placeholder: '请选择工程师',},
- label: '选择工程师',
- prop: 'workerId',
- <el-select v-model={this.formData.worker} disabled={this.formDialogType!=0} value-key="nickName" onChange={(e)=>{
- this.formData.workerId = e.userId
- this.formData.workerName = e.nickName
- this.formData.idcard = e.idCard
- this.formData.mobile = e.mobile
- this.workerList.map((item, index) => {
- return <el-option key={item.userId} label={item.nickName} value={item}></el-option>
- attributes: { placeholder: '请输入', },
- label: '身份证',
- prop: 'idcard',
- rules: this.formData.idcard?[
- { pattern:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: '身份证号格式不正确', trigger: 'blur' }
- ]:[]
- label: '联系电话',
- prop: 'mobile',
- rules: this.formData.mobile?[
- { pattern:/^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/, message: '电话号码格式不正确', trigger: 'blur' }
- attributes: { placeholder: '请选择考核项目',},
- label: '选择考核项目',
- prop: 'examineProjectName',
- <el-select v-model={this.formData.examineProject} disabled={this.formDialogType!=0} value-key="name" onChange={(e)=>{
- this.formData.examineProjectId = e.id
- this.formData.examineProjectName = e.name
- this.formData.examineProjectType = e.type
- this.formData.examineProjectAmount = e.amount
- this.examineList.map((item, index) => {
- label: '考核类型',
- prop: 'examineProjectType',
+ type: JSON.parse(localStorage.getItem('greemall_user')).type, //type=1商户, type=0网点
+ websit: {},
+ worker: {},
+ workerId: '',
+ workerName: '',
+ idcard: '',
+ examineProjectName: '',
+ examineProjectId: '',
+ examineProjectType: '',
+ examineProjectAmount: '',
+ examineProject: {},
+ orderBaseId: '',
+ fileUrl: [],
- <el-radio-group v-model={this.formData.examineProjectType}>
- <el-radio disabled={true} label="REWARD">奖励</el-radio>
- <el-radio disabled={true} label="PUNISH">惩罚</el-radio>
- attributes: { placeholder: '请输入', type: 'number', disabled: true },
- label: '考核金额',
- prop: 'examineProjectAmount',
- attributes: { placeholder: '请输入'},
- label: '关联工单号',
- prop: 'orderBaseId',
- label: '附件',
- prop: 'fileUrl',
- <ImageUpload fileList={this.formData.fileUrl} limit={1} isEdit={this.formDialogType !== 2} />
- if(this.$route.query.id){
- this.openDetail(this.$route.query.id)
- if (item.jname === 'fileUrl') {
- {row.fileUrl ? row.fileUrl.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;" />) : null}
+ workerList: [],
+ examineList: []
- this.openDetail(row.id)
- openDetail(id){
- getDetail({ id }).then(res => {
- fileUrl:res.data?.fileUrl ? res.data?.fileUrl?.split(",").map(item=>({url:item})) : [],
- worker: {workerId: res.data.workerId,nickName: res.data.workerName},
- websit: {websitId: res.data.websitId,websitName: res.data.websitName},
- examineProject: {name: res.data.examineProjectName}
- this.getExamine()
- getExamine(){
- getExamine({pageNum: 1,pageSize: -1,params: []}).then(res => {
- this.examineList = res.data.records
- if(this.type == 0){
- this.formData.websitId = JSON.parse(localStorage.getItem('greemall_user')).adminWebsitId
- this.formData.websitName = JSON.parse(localStorage.getItem('greemall_user')).nickName
+ isShow: this.type == 1,
+ attributes: { placeholder: '请输入网点名称', },
+ label: '网点名称',
+ prop: 'websitId',
+ <el-select v-model={this.formData.websit} disabled={this.formDialogType != 0} value-key="websitId" onChange={(e) => {
+ this.formData.websitId = e.websitId
+ this.formData.websitName = e.name
+ this.formData.worker = {}
+ this.formData.workerId = ''
+ this.formData.workerName = ''
+ this.formData.idcard = ''
+ this.formData.mobile = ''
+ this.getWorker()
+ }} placeholder="请选择" style="width: 100%;">
+ this.websitList.map((item, index) => {
+ return <el-option key={item.websitId} label={item.name} value={item}></el-option>
+ isShow: this.type == 0,
+ attributes: { placeholder: '请输入网点名称', disabled: true },
+ prop: 'websitName',
+ attributes: { placeholder: '请选择工程师', },
+ label: '选择工程师',
+ prop: 'workerId',
+ <el-select v-model={this.formData.worker} disabled={this.formDialogType != 0} value-key="nickName" onChange={(e) => {
+ this.formData.workerId = e.userId
+ this.formData.workerName = e.nickName
+ this.formData.idcard = e.idCard
+ this.formData.mobile = e.mobile
+ this.workerList.map((item, index) => {
+ return <el-option key={item.userId} label={item.nickName} value={item}></el-option>
+ attributes: { placeholder: '请输入', },
+ label: '身份证',
+ prop: 'idcard',
+ rules: this.formData.idcard ? [
+ { pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: '身份证号格式不正确', trigger: 'blur' }
+ ] : []
+ label: '联系电话',
+ prop: 'mobile',
+ rules: this.formData.mobile ? [
+ { pattern: /^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/, message: '电话号码格式不正确', trigger: 'blur' }
+ attributes: { placeholder: '请选择考核项目', },
+ label: '选择考核项目',
+ prop: 'examineProjectName',
+ <el-select v-model={this.formData.examineProject} disabled={this.formDialogType != 0} value-key="name" onChange={(e) => {
+ this.formData.examineProjectId = e.id
+ this.formData.examineProjectName = e.name
+ this.formData.examineProjectType = e.type
+ this.formData.examineProjectAmount = e.amount
+ this.examineList.map((item, index) => {
+ label: '考核类型',
+ prop: 'examineProjectType',
+ <el-radio-group v-model={this.formData.examineProjectType}>
+ <el-radio disabled={true} label="REWARD">奖励</el-radio>
+ <el-radio disabled={true} label="PUNISH">惩罚</el-radio>
+ attributes: { placeholder: '请输入', type: 'number', disabled: true },
+ label: '考核金额',
+ prop: 'examineProjectAmount',
+ attributes: { placeholder: '请输入' },
+ label: '关联工单号',
+ prop: 'orderBaseId',
+ label: '附件',
+ prop: 'fileUrl',
+ <ImageUpload fileList={this.formData.fileUrl} limit={1} isEdit={this.formDialogType !== 2} />
- getWorker(){
- getWorker({pageNum: 1,pageSize: -1,params: [{param: 'b.websit_id',compare: '=',value: this.formData.websitId}]}).then(res => {
- this.workerList = res.data.records
+ if (this.$route.query.id) {
+ this.openDetail(this.$route.query.id)
- ([add, edit][this.formDialogType])({
- fileUrl:this.formData.fileUrl.map(item=>item.url).join(",")
+ if (item.jname === 'fileUrl') {
+ {row.fileUrl ? row.fileUrl.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;" />) : null}
+ this.openDetail(row.id)
+ openDetail(id) {
+ getDetail({ id }).then(res => {
+ fileUrl: res.data?.fileUrl ? res.data?.fileUrl?.split(",").map(item => ({ url: item })) : [],
+ worker: { workerId: res.data.workerId, nickName: res.data.workerName },
+ websit: { websitId: res.data.websitId, websitName: res.data.websitName },
+ examineProject: { name: res.data.examineProjectName }
+ this.getExamine()
+ getExamine() {
+ getExamine({ pageNum: 1, pageSize: -1, params: [] }).then(res => {
+ this.examineList = res.data.records
+ if (this.type == 0) {
+ this.formData.websitId = JSON.parse(localStorage.getItem('greemall_user')).adminWebsitId
+ this.formData.websitName = JSON.parse(localStorage.getItem('greemall_user')).nickName
+ getWorker() {
+ getWorker({ pageNum: 1, pageSize: -1, params: [{ param: 'b.websit_id', compare: '=', value: this.formData.websitId }] }).then(res => {
+ this.workerList = res.data.records
+ ([add, edit][this.formDialogType])({
+ fileUrl: this.formData.fileUrl.map(item => item.url).join(",")
@@ -1,27 +1,27 @@
- <el-radio-group v-model="poolStatus" size="mini" @change="changeType">
- <el-radio-button label="NO">未汇总</el-radio-button>
- <el-radio-button label="YES">已汇总</el-radio-button>
- <el-dialog title="" width="600px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
- <zj-form-module :title="formDialogTitles[formDialogType]" label-width="120px" :showPackUp="false"
+ <el-radio-group v-model="poolStatus" size="mini" @change="changeType">
+ <el-radio-button label="NO">未汇总</el-radio-button>
+ <el-radio-button label="YES">已汇总</el-radio-button>
+ <el-dialog title="" width="600px" custom-class="diy-dialog" append-to-body :modal="true" :visible.sync="formDialog"
+ <zj-form-module :title="formDialogTitles[formDialogType]" label-width="120px" :showPackUp="false"
@@ -30,189 +30,192 @@ import TemplatePage from '@/components/template/template-page-1.vue'
-import { listPageV2,pageExport, pool } from "@/api/workOrder/settleAccountsOrder";
+import { listPageV2, pageExport, pool } from "@/api/workOrder/settleAccountsOrder";
- name: '汇总',
- click: this.poolData
- formDialogTitles: ["汇总"],
- month: (new Date().getFullYear()) + '-' + ((new Date().getMonth() + 1)>9?(new Date().getMonth() + 1):('0'+(new Date().getMonth() + 1))),
- createdTime: [],
- starDate: '',
- endDate: '',
- poolStatus: ''
- label: '月份',
- prop: 'month',
- attributes: { placeholder: '请选择',},
- label: '创建结算单时间',
- prop: 'createdTime',
- <el-date-picker
- v-model={this.formData.createdTime}
- type="daterange"
- range-separator="至"
- value-format="yyyy-MM-dd"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- onChange={e=>{
- this.formData.starDate = e[0]
- this.formData.endDate = e[1]
- </el-date-picker>
+ formDialogTitles: ["汇总"],
+ month: (new Date().getFullYear()) + '-' + ((new Date().getMonth() + 1) > 9 ? (new Date().getMonth() + 1) : ('0' + (new Date().getMonth() + 1))),
+ createdTime: [],
+ starDate: '',
+ endDate: '',
+ poolStatus: ''
- pam.params.push({'param': 'a.pool_status', "compare": "=", "value": this.poolStatus})
+ this.optionsEvensAuth("collect", {
+ click: this.poolData
+ label: '月份',
+ prop: 'month',
+ attributes: { placeholder: '请选择', },
+ label: '创建结算单时间',
+ prop: 'createdTime',
+ v-model={this.formData.createdTime}
+ end-placeholder="结束日期"
+ onChange={e => {
+ this.formData.starDate = e[0]
+ this.formData.endDate = e[1]
- if(row.settleOrderType == 'EXAMINE'){
- name: "rewardsPunishmentsOrder",
- id:row.examineProjectId
- id:row.orderBaseId,
- activeName: "SettleAccounts",
+ pam.params.push({ 'param': 'a.pool_status', "compare": "=", "value": this.poolStatus })
+ if (row.settleOrderType == 'EXAMINE') {
+ name: "rewardsPunishmentsOrder",
+ id: row.examineProjectId
+ id: row.orderBaseId,
+ poolData() {
+ pool({
+ starDate: this.formData.starDate + ' 00:00:00',
+ endDate: this.formData.endDate + ' 23:59:59',
+ month: this.formData.month
- poolData() {
- pool({
- starDate: this.formData.starDate + ' 00:00:00',
- endDate: this.formData.endDate + ' 23:59:59',
- month: this.formData.month
@@ -1,21 +1,21 @@
- <template-page v-show="!formDialog" ref="pageRef" :get-list="getList" :table-attributes="tableAttributes" :table-events="tableEvents" :operationColumnWidth="120"
- <!-- :exportList="exportList" -->
- <el-radio-button label="NO">待发放</el-radio-button>
- <el-radio-button label="YES">已发放</el-radio-button>
- <el-radio-button label="NOT">驳回</el-radio-button>
+ :table-events="tableEvents" :operationColumnWidth="120" :options-evens-group="optionsEvensGroup"
+ :moreParameters="moreParameters" :column-parsing="columnParsing" :operation="operation()">
+ <!-- :exportList="exportList" -->
+ <el-radio-button label="NO">待发放</el-radio-button>
+ <el-radio-button label="YES">已发放</el-radio-button>
+ <el-radio-button label="NOT">驳回</el-radio-button>
- <detailList :id="id" @back="backList" :title="'汇总账单明细-'+id"></detailList>
+ <detailList :id="id" @back="backList" :title="'汇总账单明细-' + id"></detailList>
@@ -26,210 +26,222 @@ import import_mixin from '@/components/template/import_mixin.js'
import detailList from './detailList.vue'
-import { listPageV2,pageExport, cancel, confirm } from "@/api/workOrder/summaryBill";
+import { listPageV2, pageExport, cancel, confirm } from "@/api/workOrder/summaryBill";
- components: { TemplatePage, ImageUpload, detailList },
- name: '驳回',
- click: this.cancelMore
- name: '发放',
- click: this.confirmMore
- selectColumn: true,
- selectable: this.selectable
- id: ''
+ components: { TemplatePage, ImageUpload, detailList },
+ selectColumn: true,
+ selectable: this.selectable
- selectable(row, index) {
- return ["NO"].includes(Object.entries(row.selectMapData.status).find(([key, val]) => val == row.status)?.[0])
- pam.params.push({'param': 'a.status', "compare": "=", "value": this.status})
- this.id = row.id
- {row.status == 'NO'?<el-button type="text" onClick={() => {
- this.confirm([row.id])
- }}>发放</el-button>:null}
- this.cancel([row.id])
- }}>驳回</el-button>:null}
- cancelMore(){
- this.cancel(this.recordSelected.map(item=>{return item.id}))
- cancel(ids) {
- this.$confirm('请确认是否驳回选中的数据, 是否继续?', '提示', {
- cancel(ids).then(res => {
- this.$message({ type: 'success', message: `驳回成功!` })
- confirmMore(){
+ this.optionsEvensAuth("rejectPl", {
+ click: this.cancelMore
+ this.optionsEvensAuth("issuePl", {
+ click: this.confirmMore
- this.confirm(this.recordSelected.map(item=>{return item.id}))
- confirm(ids){
- this.$confirm('请确认是否发放选中的数据, 是否继续?', '提示', {
- confirm(ids).then(res => {
- this.$message({ type: 'success', message: `发放成功!` })
+ selectable(row, index) {
+ return ["NO"].includes(Object.entries(row.selectMapData.status).find(([key, val]) => val == row.status)?.[0])
+ pam.params.push({ 'param': 'a.status', "compare": "=", "value": this.status })
+ issue: {
+ return row.status == 'NO'
+ this.confirm([row.id])
+ reject: {
+ this.cancel([row.id])
+ cancelMore() {
+ this.cancel(this.recordSelected.map(item => { return item.id }))
+ cancel(ids) {
+ this.$confirm('请确认是否驳回选中的数据, 是否继续?', '提示', {
+ cancel(ids).then(res => {
+ this.$message({ type: 'success', message: `驳回成功!` })
+ confirmMore() {
+ this.confirm(this.recordSelected.map(item => { return item.id }))
+ confirm(ids) {
+ this.$confirm('请确认是否发放选中的数据, 是否继续?', '提示', {
+ confirm(ids).then(res => {
+ this.$message({ type: 'success', message: `发放成功!` })