Commit 14163a6f by HuAnYing

8/14

parents 13f46f5f c772a0cb
......@@ -65,6 +65,20 @@ export function PendingWorkOrder(data) {
data,
)
}
export function ShelveWorkOrder(data) {
return axios.post(
'platform/platformWorkOrder/shelveForPending',
data,
)
}
export function TurnBackToPending(data) {
return axios.post(
'platform/platformWorkOrder/turnBackToPending',
data,
)
}
export function replyTocustomer(id, msg) {
return axios.post('platform/platformWorkOrderChat/add', {
msg: msg,
......
<template>
<i
v-if="unicodeIcon"
class="erpIconfont erp unicode-icon"
v-html="unicodeIcon"
></i>
<svg v-else class="svg-icon erp" aria-hidden="true">
<slot name="title"></slot>
<use :xlink:href="svgIcon"></use>
</svg>
</template>
<script>
export default {
name: 'Icon',
props: {
name: {
type: String,
required: true,
},
},
computed: {
unicodeIcon() {
if (this.name.match(/^x[a-f0-9]{4}$/)) {
return `&#${this.name};`
}
return undefined
},
svgIcon() {
if (this.unicodeIcon) return undefined
return `#erp-${this.name}`
},
},
}
</script>
<style>
.unicode-icon {
width: 1em;
height: 1em;
color: inherit;
}
.svg-icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
\ No newline at end of file
......@@ -297,7 +297,7 @@ export default {
children: []
},
]
}
},
],
dialogVisible: false,
oldPwd: '',
......
<template>
<div class="announce-manage card">
<el-form
ref="form"
:model="searchForm"
size="mini"
v-enter-submit="search"
@submit.native.prevent
:inline="true"
>
<el-form-item label="应用名称">
<el-input
style="width: 120px"
clearable
v-model="searchForm.employeeName"
placeholder="应用名称"
></el-input>
</el-form-item>
<el-form-item label="应用分类">
<el-select
v-model="searchForm.creator"
placeholder="请选择"
clearable
filterable
>
<el-option
v-for="user in userList"
:key="user.id"
:label="user.realName"
:value="user.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
style="width: 164px"
v-model="searchForm.time"
align="right"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
></el-date-picker>
<!-- <el-input v-model="searchForm.time"></el-input> -->
</el-form-item>
<el-form-item label>
<el-button
type="primary"
native-type="submit"
@click="search()"
>
查询
</el-button>
</el-form-item>
<el-form-item label>
<el-button type="success" @click="editDialog()"
>新增
</el-button
>
</el-form-item>
<el-form-item label>
<el-button type="danger" @click="editDialog()"
>删除
</el-button
>
</el-form-item>
</el-form>
<div class="table_wrap" style="padding: 0">
<table-view
:sourceData="sourceData"
:serialNumber="false"
:tableColumns="tableColumns"
></table-view>
</div>
<pagination
:setValue="setpaginationOptions"
:options="paginationOptions"
/>
<el-dialog
:title="isEdit ? '编辑' : '新增'"
:close-on-click-modal="false"
:visible.sync="dialogVisible"
width="80%"
>
<layout class="row" :leftStyle="{ width: '330px' }">
<template #page_left>
<el-tree :data="folders" ref="tree" :props="{ children: 'children', label: 'categoryName' }" highlight-current
:node-key="'id'" default-expand-all :expand-on-click-node="false" @node-click="handleNodeClick">
<div class="customize-tree-node" slot-scope="{ node, data }">
<div @click.stop="toggleNodeExpanded(node)" class="custom-tree-node-arrow"
:style="{ transform: node.expanded ? 'rotate(90deg)' : '' }"
v-if="data.children && data.children.length > 0">
<icon :name="node.expanded ? 'xe61e' : 'xe659'"></icon>
</div>
<div class="customize-tree-node__label">
<icon name="wenjianjia"></icon>
<span>{{ data.categoryName }}</span>
</div>
<div class="customize-tree-node__operate">
<i title="添加分类" class="el-icon-circle-plus" style="color: rgb(140 195 75); margin-right: 5px"
@click="addFolder(data)"></i>
<i title="修改分类" class="el-icon-edit-outline" style="color: #ff9800; margin-right: 5px"
@click="editFolder(data)"></i>
<i title="删除分类" class="el-icon-remove-outline" style="color: red" @click="removeFolder(data)"></i>
</div>
</div>
</el-tree>
</template>
<template #page_right>
<el-form ref="form" :model="searchForm" size="mini" v-enter-submit="search" @submit.native.prevent :inline="true">
<el-form-item label="应用名称">
<el-input style="width: 120px" clearable v-model="searchForm.name" placeholder="应用名称"></el-input>
</el-form-item>
<el-form-item label="应用类型">
<el-select v-model="searchForm.type" placeholder="请选择" clearable filterable>
<el-option v-for="item in applicationTypeData" :key="item.id" :label="item.value"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label>
<el-button type="primary" native-type="submit" @click="search()">
查询
</el-button>
</el-form-item>
<el-form-item label>
<el-button type="success" @click="editDialog()">新增
</el-button>
</el-form-item>
<el-form-item label>
<el-button type="warning" @click="updateDialog()">修改
</el-button>
</el-form-item>
<el-form-item label>
<el-button type="danger" @click="editDialog()">删除
</el-button>
</el-form-item>
</el-form>
<div class="table_wrap" style="padding: 0">
<table-view :sourceData="sourceData" :serialNumber="false" :tableColumns="tableColumns"></table-view>
</div>
<pagination :setValue="setpaginationOptions" :options="paginationOptions" />
</template>
<!-- <el-dialog :title="isEdit ? '编辑' : '新增'" :close-on-click-modal="false" :visible.sync="editShowing" width="80%">
<div class="app-form">
<div class="img">
<img
......@@ -88,111 +65,44 @@
alt="">
</div>
<div class="form">
<el-form
:model="editForm"
:inline="true"
label-width="80px"
:rules="addrules"
size="mini"
ref="editForm"
>
<el-form :model="editForm" :inline="true" label-width="80px" :rules="addrules" size="mini" ref="editForm">
<el-row :gutter="10">
<el-col :span="12">
<el-form-item
label="应用名称"
size="small"
prop="title"
>
<el-input
style="width: 100%"
v-model="editForm.title"
></el-input>
<el-form-item label="应用名称" size="small" prop="title">
<el-input style="width: 100%" v-model="editForm.title"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="应用分类"
size="small"
prop="title"
>
<el-select
style="width: 100%;"
v-model="searchForm.creator"
placeholder="请选择"
clearable
filterable
>
<el-option
v-for="user in userList"
:key="user.id"
:label="user.realName"
:value="user.id"
></el-option>
<el-form-item label="应用分类" size="small" prop="title">
<el-select style="width: 100%;" v-model="searchForm.creator" placeholder="请选择" clearable filterable>
<el-option v-for="user in userList" :key="user.id" :label="user.realName"
:value="user.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
label="应用简述"
size="small"
prop="title"
>
<el-input
style="width: 100%"
type="textarea"
:rows="4"
v-model="editForm.title"
></el-input>
<el-form-item label="应用简述" size="small" prop="title">
<el-input style="width: 100%" type="textarea" :rows="4" v-model="editForm.title"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item
label="应用详情"
size="small"
prop="title"
>
<v-editor
filename="files"
style="width: 100%"
v-model="editForm.content"
ref="wangeditor"
height="300px"
/>
<el-form-item label="应用详情" size="small" prop="title">
<v-editor filename="files" style="width: 100%" v-model="editForm.content" ref="wangeditor"
height="300px" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" style="width: 100%;">
<el-col :span="11">
<el-form-item
label="应用价格"
size="small"
prop="title"
>
<el-input
style="width: 100%"
v-model="editForm.title"
></el-input>
<el-form-item label="应用价格" size="small" prop="title">
<el-input style="width: 100%" v-model="editForm.title"></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item
label="应用周期"
size="small"
prop="title"
>
<el-select
style="width: 100%"
v-model="searchForm.creator"
placeholder="请选择"
clearable
filterable
>
<el-option
v-for="user in userList"
:key="user.id"
:label="user.realName"
:value="user.id"
></el-option>
<el-form-item label="应用周期" size="small" prop="title">
<el-select style="width: 100%" v-model="searchForm.creator" placeholder="请选择" clearable filterable>
<el-option v-for="user in userList" :key="user.id" :label="user.realName"
:value="user.id"></el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -206,81 +116,182 @@
</div>
<div style="display: flex;justify-content: flex-end" slot="footer">
<el-button
size="mini"
style="width: 80px;"
@click="dialogVisible = false"
>取 消
</el-button
>
<el-button
size="mini"
style="margin-left: 20px;width: 80px;"
type="primary"
@click="submit"
>确 定
</el-button
>
<el-button size="mini" style="width: 80px;" @click="editShowing = false">取 消
</el-button>
<el-button size="mini" style="margin-left: 20px;width: 80px;" type="primary" @click="submit">确 定
</el-button>
</div>
</el-dialog> -->
<!-- 添加、修改应用 -->
<el-dialog :title="isEdit ? '编辑' : '新增'" :visible.sync="editShowing" width="1000px" :close-on-click-modal="false">
<div class="edit-form">
<el-form ref="editForm" :model="editForm" label-width="auto">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="应用分类" prop="folderId" required>
<el-cascader style="width: 100%" v-model="editForm.folderId" size="mini" :options="folders" clearable :props="{
label: 'categoryName',
value: 'id',
emitPath: false,
checkStrictly: true
}" :show-all-levels="false"></el-cascader>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="应用类型" prop="designTeamId" :rules="[{ message: '请选择应用类型', required: true }]">
<el-select style="width: 100%" v-model="editForm.designTeamId" size="mini" placeholder="请选择" clearable>
<el-option v-for="item in applicationTypeData" :key="item.id" :label="item.value"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="应用周期" prop="architectId" :rules="[{ required: true, message: '请选择应用周期' }]">
<el-select v-model="editForm.architectId" size="mini" filterable clearable style="width: 100%">
<el-option v-for="item in applicationTypeData" :key="item.id" :label="item.value"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="应用名称" prop="name">
<el-input v-model="editForm.name" placeholder="请输入应用名称" maxlength="120" size="mini" clearable show-word-limit />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="应用价格" prop="name">
<el-input v-model="editForm.name" placeholder="请输入应用价格" maxlength="120" size="mini" clearable show-word-limit />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="应用图标">
<div class="my-flex-1">
<upload-images sortField="sort" businessType="design" uploadApiUrl="upload/ossUpload"
:type="limitFileType" :isFloat="false" :width="300" :hasWidth="true" :hasOss="true"
:length="editFlag ? 1 : 50" v-model="editForm.mainImage" @selectImg="selectImg"
>
<template #other="{ index }">
<div class="other-msg" style="display: flex">
<span class="other-label" style="margin-right: 4px">
图标文件
</span>
<upload-file v-model="productionFile[index]" url="upload/podProductionFileUpload"
getFilePath="filePath" :max="1" text="上传图标文件" />
</div>
</template>
</upload-images>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="应用简述" size="small" prop="title">
<el-input style="width: 100%" type="textarea" :rows="4" v-model="editForm.title"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="应用详情" size="small" prop="title">
<v-editor filename="files" style="width: 100%" v-model="editForm.content" ref="wangeditor"
height="300px" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer">
<el-button @click="editShowing = false">取消</el-button>
<el-button @click="save" type="primary">确认</el-button>
</span>
</el-dialog>
<el-dialog
:visible.sync="releaseVisible"
:close-on-click-modal="false"
title="发布"
width="600px"
>
<el-checkbox
:indeterminate="isIndeterminate"
v-model="checkAll"
@change="handleCheckAllChange"
>全选
</el-checkbox
>
<el-dialog :visible.sync="releaseVisible" :close-on-click-modal="false" title="发布" width="600px">
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选
</el-checkbox>
<div style="margin: 15px 0"></div>
<el-checkbox-group
v-model="checkedCompany"
@change="handleCheckedCompanyChange"
>
<el-checkbox
style="width: 100px"
v-for="c in releaseList"
:label="c.id"
:key="c.id"
>{{ c.apiName }}
</el-checkbox
>
<el-checkbox-group v-model="checkedCompany" @change="handleCheckedCompanyChange">
<el-checkbox style="width: 100px" v-for="c in releaseList" :label="c.id" :key="c.id">{{ c.apiName }}
</el-checkbox>
</el-checkbox-group>
<span slot="footer">
<el-button
size="mini"
@click="releaseVisible = false"
>取消</el-button
>
<el-button
size="mini"
@click="confirmRelease"
type="primary"
>确认</el-button
>
<el-button size="mini" @click="releaseVisible = false">取消</el-button>
<el-button size="mini" @click="confirmRelease" type="primary">确认</el-button>
</span>
</el-dialog>
<!-- 添加、修改分类 -->
<el-dialog :title="editFolderId ? '编辑分类' : '添加分类'" :visible.sync="folderVisible" :close-on-click-modal="false"
width="600px">
<el-form ref="folderForm" :model="folderForm" label-position="top" label-width="80px">
<el-form-item label="名称" prop="folderName" :rules="[{ required: true, message: '请输入分类名称' }]">
<el-input v-model="folderForm.folderName" clearable placeholder="分类名称"></el-input>
</el-form-item>
</el-form>
<span slot="footer">
<el-button @click="folderVisible = false">取消</el-button>
<el-button @click="submitFolder" type="primary">确认</el-button>
</span>
</el-dialog>
</layout>
</div>
</template>
<script>
import Editor from '@/components/wangeditor/index.vue'
import tableView from '@/common/components/base/tableView.vue'
import { get, post } from '@/common/api/axios'
import { getSystemUserList } from '@/common/api/system'
import Icon from '@/components/base/icon.vue'
import layout from '@/components/global/layout.vue'
export default {
name: 'system_announce_manage',
components: {
'v-editor': Editor,
tableView
tableView,
Icon,
layout
},
data() {
return {
editForm: {
name: '',
labelNames: [],
architectId: '',
originFile: '', // 源文件
productionFile: '', // 生产文件
mainImage: undefined, // 设计图,
designTeamId: '',
demandCustomize: 0,
redraw: 0,
folderId: ''
},
limitFileType: ['jpg', 'png'],
editFlag: false,
productionFile: [],
defaultProps: {
children: 'children',
label: 'name'
},
folders: [],
folderIds: '',
parentFolderId: '',
folderVisible: false,
currentFolder: undefined,
editFolderId: undefined,
folderForm: {
folderName: ''
},
applicationTypeData: [{
id: 1,
value: '免费'
}, {
id: 2,
value: '收费'
}],
checkAll: false,
isIndeterminate: false,
checkedCompany: [],
......@@ -289,7 +300,7 @@ export default {
currentPage: 1,
total: 1,
paginationOptions: {
pageSize: 100,
pageSize: 10,
currentPage: 1,
total: 0
},
......@@ -305,10 +316,7 @@ export default {
sourceData: [],
searchForm: {},
isEdit: false,
dialogVisible: false,
editForm: {
title: ''
},
editShowing: false,
defaultEditFrom: {
title: '',
enableFlag: false,
......@@ -320,60 +328,69 @@ export default {
}
},
mounted() {
this.getList()
this.getSystemUserList()
this.loadFoldersData()
// this.getList()
// this.getSystemUserList()
},
computed: {
tableColumns() {
return [
{
label: '序号',
key: 'index',
},
{
label: '应用名称',
key: 'title',
key: 'name',
align: 'left'
},
{
label: '应用分类',
key: 'creatorName'
key: 'categoryName'
},
{
label: '应用简述',
key: 'creatorName1'
key: 'description'
},
// {
// label: '应用价格',
// key: 'creatorName2'
// },
{
label: '应用服务期',
key: 'creatorName2'
},
{
label: '创建时间',
key: 'creationTime'
label: '创建日期',
key: 'createTime'
},
{
label: '操作',
width: 150,
render: (item) => (
<div>
<span
class="icon-view icon-edit-view"
title="编辑"
onClick={() => this.editDialog(item)}
>
<i class="el-icon-edit"></i>
</span>
<span
class="icon-view icon-edit-view"
title="编辑"
onClick={() => this.editDialog(item)}
>
<i class="el-icon-edit"></i>
</span>
<span
class="icon-view icon-del-view"
title="删除"
onClick={() => this.deleteAnnounces(item)}
>
<i class="el-icon-delete"></i>
</span>
<i class="el-icon-delete"></i>
</span>
<span
class="icon-view"
style="background:yellowgreen"
title="字段配置"
onClick={() => this.fieldSet(item)}
>
<i class="el-icon-c-scale-to-original"></i>
</span>
<i class="el-icon-c-scale-to-original"></i>
</span>
</div>
)
}
......@@ -381,6 +398,143 @@ export default {
}
},
methods: {
async save() {
try {
await this.$refs.editForm.validate()
} catch {
return
}
if (!this.editForm.mainImage || this.editForm.mainImage.length === 0) {
this.$message.warning('请选择设计图')
return
}
if (this.productionFile.some((item) => !item)) {
return this.$message.warning('请上传生产文件')
}
if (this.productionFile.length > 0) {
this.editForm.productionFile = this.productionFile.join(',')
}
try {
const data = JSON.parse(JSON.stringify(this.editForm))
data.labelNames = data.labelNames?.join()
// data.mainImage = data.mainImage[0].imagePath
data.mainImage = this.handleImage(data.mainImage)
if (!this.editId) {
data.folderId = this.folderId
await post('podDesignCenter/addPodDesigns', data)
} else {
data.folderId = this.editForm.folderId
await post('podDesignCenter/update', data)
}
this.getList()
} catch (e) {
throw new Error(e)
} finally {
this.editShowing = false
}
},
selectImg(file) {
const imagePath = file.map((ee) => ee.imagePath)
this.productionFile = imagePath
},
// 获取左侧树数据
async loadFoldersData() {
try {
const res = await get('businessAppCategory/getCategoryList')
if (res.code !== 200) return
this.folders = this.recursiveFolder(res.data)
this.$nextTick(() => {
this.$refs.tree.setCurrentKey(this.folderId || res.data[0].id)
})
} catch (e) {
console.error(e)
}
},
recursiveFolder(folder) {
for (const item of folder) {
if (item.children && item.children.length > 0) {
this.recursiveFolder(item.children)
}
if (item.children && item.children.length === 0) {
item.children = undefined
this.$set(item, 'leaf', true)
continue
}
}
return folder
},
// 添加、修改、删除分类
async addFolder(data) {
this.folderVisible = true
this.currentFolder = data
this.parentFolderId = data.pid
this.editFolderId = undefined
this.$nextTick(() => {
this.$refs.folderForm && this.$refs.folderForm.resetFields()
})
},
editFolder(data) {
this.parentFolderId = data.pid
this.editFolderId = data.id
this.folderForm = {
folderName: data.categoryName
}
this.folderVisible = true
},
async removeFolder(data) {
try {
await this.$confirm('确定删除该分类吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
} catch {
return
}
try {
const res = await get(
'businessAppCategory/deleteCategoryById',
{
id: data.id
}
)
if (res.code !== 200) return
this.$message.success(res.message)
this.loadFoldersData()
} catch (e) {
console.error(e)
}
},
// 分类提交
async submitFolder() {
try {
await this.$refs.folderForm.validate()
} catch {
return
}
const params = {
pid: this.currentFolder.id === 1 ? 0 : this.folderId, // 顶级分类pid传0,其他传自己的id
categoryName: this.folderForm.folderName, // 分类名称
id: this.editFolderId ? this.folderId : undefined // 编辑有id,添加没有id
}
console.log(params, '4545')
try {
const res = await post('businessAppCategory/addOrUpdateCategory', params)
if (res.code !== 200) return
this.loadFoldersData()
this.folderVisible = false
} catch (e) {
console.error(e)
}
},
// 左侧树每个节点点击
handleNodeClick(data) {
this.currentFolder = data
this.parentFolderId = data.pid
this.folderId = data.id
this.getList()
},
fieldSet(item) {
this.$router.push('/dynamicForm')
},
......@@ -422,14 +576,16 @@ export default {
currentPage
} =
this.paginationOptions
const res = await post('sys/announcement/list', {
const res = await post('businessAppInfo/getAppInfoList', {
categoryId: this.folderId,
pageSize,
currentPage,
...this.searchForm
isCollectFee: this.searchForm.type !== 1,
name: this.searchForm.name,
})
if (res.code !== 200) return
this.sourceData = res.data.records
this.paginationOptions.total = res.data.total
this.sourceData = res.data.records || []
this.paginationOptions.total = res.data.total || 0
} catch (e) {
console.error(e)
}
......@@ -462,7 +618,7 @@ export default {
})
this.isEdit = false
}
this.dialogVisible = true
this.editShowing = true
},
async submit() {
try {
......@@ -478,7 +634,7 @@ export default {
const res = await post(url, { ...this.editForm })
if (res.code !== 200) return
this.$message.success(res.message)
this.dialogVisible = false
this.editShowing = false
this.getList()
} catch (e) {
console.error(e)
......@@ -541,13 +697,189 @@ export default {
}
}
</script>
<style lang="scss" scoped>
.announce-manage {
<style scoped>
.customize-tree-node__label {
margin-left: 4px;
flex: 1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.customize-tree-node {
font-size: 14px;
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
}
.pod-search {
padding: 0px 10px;
}
.pod-header {
display: flex;
}
.item:not(:last-child) {
margin-right: 10px;
}
.table_wrapper {
flex: 1;
padding: 0 10px;
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 10px;
}
@media screen and (max-width: 1920px) {
.table_wrapper {
grid-template-columns: repeat(6, 1fr);
}
}
@media screen and (max-width: 1400px) {
.table_wrapper {
grid-template-columns: repeat(4, 1fr);
}
}
.upload-demo::v-deep .el-upload--text {
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: hidden;
text-overflow: ellipsis;
text-align: left;
}
.sales {
width: 40px;
height: 26px;
display: inline-block;
position: relative;
border: 1px solid #ddd;
overflow: hidden;
vertical-align: middle;
white-space: nowrap;
border-radius: 4px;
cursor: pointer;
padding: 3px 3px;
box-sizing: border-box;
display: inline-flex;
align-items: center;
justify-content: center;
}
.isActive {
border: 1px solid #4168ff;
}
.edit-form::v-deep .img_item {
width: 27%;
height: 200px;
background: #eeeeee;
}
.edit-form::v-deep .img_item .img {
width: 100%;
height: 100%;
}
.edit-form::v-deep .img_wrap {
width: 27%;
height: 200px;
}
.edit-form::v-deep .img_wrap i {
font-size: 60px;
color: #047dff;
}
.custom-tree-node-arrow {
transform: unset !important;
}
.row::v-deep .el-tree-node.is-current>.el-tree-node__content .customize-tree-node__operate {
display: block;
}
.row::v-deep .el-tree-node__expand-icon {
visibility: hidden;
}
.file {
display: flex;
flex-direction: column;
padding: 10px 20px 0;
overflow: hidden;
align-items: center;
justify-content: center;
cursor: pointer;
}
</style>
<style>
.folder_select .el-dialog__body {
height: 400px;
}
.customsize-label .el-select-dropdown__list {
display: flex;
overflow: hidden auto;
width: 500px;
flex-wrap: wrap;
}
.customsize-label.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after {
content: '';
display: none;
}
.customsize-label .el-select-dropdown__item.selected .el-tag {
background-color: #ecf5ff;
display: inline-block;
font-size: 12px;
color: #409eff;
border-radius: 4px;
box-sizing: border-box;
white-space: nowrap;
}
.customsize-label .el-select-dropdown__item {
padding: 0px 10px;
white-space: nowrap;
flex-shrink: 0;
}
.variant_list>>>.el-dialog__body {
border-top: 1px solid #ebeef5;
}
.variant_list>>>.el-dialog__headerbtn {
top: 11px;
}
.variant_wrap {
height: 700px;
overflow: auto;
}
.variant_wrap::after {
display: block;
content: '';
clear: both;
}
.empty {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
color: #777;
}
.app-form {
......@@ -596,4 +928,8 @@ export default {
.el-row {
align-items: center;
}
</style>
.customize-tree-node__operate {
display: none;
}
</style>
\ No newline at end of file
......@@ -7,34 +7,29 @@
<span
class="my-flex-1"
:class="{ active: is_tab == '1' }"
@click="handleClick('1')"
>
@click="handleClick('1')">
类别
</span>
<span
class="my-flex-1"
:class="{ active: is_tab == '2' }"
@click="handleClick('2')"
>
@click="handleClick('2')">
风格
</span>
</li>
</ul>
</el-form-item>
<el-form-item style="margin-bottom: 0px">
<el-button type="success" @click="addDialog(1)"
>新增</el-button
>
<el-button type="success" @click="addDialog(1)">新增</el-button>
</el-form-item>
<el-form-item style="margin-bottom: 0px">
<el-button type="danger" @click="deleteSection()"
>删除</el-button
>
<el-button type="danger" @click="deleteSection()">删除</el-button>
</el-form-item>
<el-form-item style="margin-bottom: 0px">
<el-button type="warning" @click="getList(1)"
>刷新</el-button
>
<el-button type="warning" @click="getList(1)">刷新</el-button>
</el-form-item>
<el-form-item style="margin-bottom: 0px">
<el-button type="primary" @click="importExcel">导入</el-button>
</el-form-item>
</el-form>
<div class="my-table-cont my-flex-1">
......@@ -44,8 +39,7 @@
:treeConfig="{ children: 'children' }"
:selection="true"
@selectionChange="(v) => (selections = v)"
:tableColumns="tableColumns"
></table-view>
:tableColumns="tableColumns"></table-view>
</div>
<div class="pagination" v-if="is_tab == 2">
<el-pagination
......@@ -55,8 +49,7 @@
:page-size="paginationOptions.pageSize"
:current-page="paginationOptions.currentPage"
@size-change="sizeChange"
@current-change="onCurrentChange"
/>
@current-change="onCurrentChange" />
</div>
<!-- 弹出层 -->
......@@ -64,8 +57,7 @@
:close-on-click-modal="false"
:title="is_title == 1 ? '新增' : '编辑'"
:visible.sync="dialogVisible"
width="640px"
>
width="640px">
<el-form
label-position="right"
label-width="100px"
......@@ -73,13 +65,8 @@
:inline="true"
:model="addcurrencyform"
:rules="addrules"
ref="addcurrencyform"
>
<el-form-item
label="上级分类"
v-if="is_tab == '1'"
prop="pid"
>
ref="addcurrencyform">
<el-form-item label="上级分类" v-if="is_tab == '1'" prop="pid">
<!-- <el-select v-model="addcurrencyform.pid" placeholder="请选择上级分类">
<el-option v-for="item in all_list" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>-->
......@@ -89,85 +76,68 @@
v-model="addcurrencyform.pid"
:options="all_list"
:props="pidoptions"
:show-all-levels="false"
></el-cascader>
:show-all-levels="false"></el-cascader>
</el-form-item>
<el-form-item
label="类别中文名"
prop="name"
v-if="is_tab == '1'"
required
>
required>
<el-input
v-model="addcurrencyform.name"
placeholder="请输入类别中文名称"
></el-input>
placeholder="请输入类别中文名称"></el-input>
</el-form-item>
<el-form-item
label="类别英文名"
prop="enname"
v-if="is_tab == '1'"
required
>
required>
<el-input
v-model="addcurrencyform.enname"
placeholder="请输入类别英文名称"
></el-input>
placeholder="请输入类别英文名称"></el-input>
</el-form-item>
<el-form-item
label="风格名称"
prop="name"
v-if="is_tab == '2'"
required
>
required>
<el-input
v-model="addcurrencyform.name"
placeholder="请输入类别名称"
></el-input>
placeholder="请输入类别名称"></el-input>
</el-form-item>
<el-form-item
label="风格编码"
prop="code"
v-if="is_tab == '2'"
required
>
required>
<el-input
v-model="addcurrencyform.code"
placeholder="请输入类别名称"
></el-input>
placeholder="请输入类别名称"></el-input>
</el-form-item>
<el-form-item label="排序" prop="remark">
<el-input
style="width: 164px"
v-model="addcurrencyform.sort"
placeholder="排序"
></el-input>
placeholder="排序"></el-input>
</el-form-item>
<el-form-item label="备注信息" prop="remark">
<el-input
style="width: 438px"
v-model="addcurrencyform.remark"
placeholder="请输入备注信息"
></el-input>
placeholder="请输入备注信息"></el-input>
</el-form-item>
<el-form-item
label="相关风格"
prop="styleIds"
v-if="is_tab == '1'"
>
<el-form-item label="相关风格" prop="styleIds" v-if="is_tab == '1'">
<el-select
v-model="addcurrencyform.styleIds"
multiple
placeholder="请选择相关风格"
style="width: 438px"
filterable
>
filterable>
<el-option
v-for="(item, index) in all_list2"
:key="index"
:label="item.name"
:value="item.id"
></el-option>
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item
......@@ -175,48 +145,38 @@
prop="skuPropertyIds"
required
v-if="
is_tab == '1' &&
(addcurrencyform.pid === 0 ||
!addcurrencyform.pid)
"
>
is_tab == '1' && (addcurrencyform.pid === 0 || !addcurrencyform.pid)
">
<el-select
v-model="addcurrencyform.skuPropertyIds"
multiple
filterable
placeholder="请选择相关属性"
style="width: 438px"
>
style="width: 438px">
<el-option
v-for="item in skuCategory"
:key="item.id"
:value="item.id"
:label="item.cnname + '(' + item.enname + ')'"
></el-option>
:label="item.cnname + '(' + item.enname + ')'"></el-option>
</el-select>
</el-form-item>
<el-form-item
label="一般属性"
prop="generalPropertyIds"
v-if="
is_tab == '1' &&
(addcurrencyform.pid === 0 ||
!addcurrencyform.pid)
"
>
is_tab == '1' && (addcurrencyform.pid === 0 || !addcurrencyform.pid)
">
<el-select
v-model="addcurrencyform.generalPropertyIds"
multiple
filterable
placeholder="请选择相关属性"
style="width: 438px"
>
style="width: 438px">
<el-option
v-for="item in generalCategory"
:key="item.id"
:value="item.id"
:label="item.cnname + '(' + item.enname + ')'"
></el-option>
:label="item.cnname + '(' + item.enname + ')'"></el-option>
</el-select>
</el-form-item>
</el-form>
......@@ -224,16 +184,14 @@
<el-button
@click="dialogVisible = false"
size="mini"
style="width: 130px"
>
style="width: 130px">
取消
</el-button>
<el-button
type="primary"
@click="addCurrency()"
size="mini"
style="width: 130px"
>
style="width: 130px">
确认
</el-button>
</span>
......@@ -243,43 +201,26 @@
:title="`设置默认供应商(${currentCateName})`"
:visible.sync="setDefVisivle"
width="790px"
:close-on-click-modal="false"
>
:close-on-click-modal="false">
<el-input
v-model="supplierName"
placeholder=""
style="width: 200px; margin-bottom: 10px"
clearable
></el-input>
clearable></el-input>
<div style="min-height: 100px; max-height: 500px">
<el-radio-group
v-model="supplierId"
style="width: 100%"
>
<el-radio-group v-model="supplierId" style="width: 100%">
<div
style="
display: inline-block;
width: 33.33%;
margin-bottom: 10px;
"
style="display: inline-block; width: 33.33%; margin-bottom: 10px"
v-for="(item, index) in supplierlist"
:key="index"
>
<el-radio :label="item.id">{{
item.name
}}</el-radio>
:key="index">
<el-radio :label="item.id">{{ item.name }}</el-radio>
</div>
</el-radio-group>
</div>
<span slot="footer">
<el-button @click="setDefVisivle = false"
>取消</el-button
>
<el-button
type="primary"
@click="submitDefaultSupplier"
>
<el-button @click="setDefVisivle = false">取消</el-button>
<el-button type="primary" @click="submitDefaultSupplier">
保存
</el-button>
</span>
......@@ -289,10 +230,11 @@
<script>
import axios from '../../common/api/axios'
import TableView from '@/common/components/base/tableView.vue'
export default {
name: 'supply_category',
components: {
TableView,
TableView
},
data() {
return {
......@@ -313,7 +255,7 @@ export default {
styleIds: [],
styleNames: '',
pid: 0,
propertyIds: [],
propertyIds: []
},
addcurrencyform2: null,
formId: null,
......@@ -325,12 +267,12 @@ export default {
label: 'name',
value: 'id',
checkStrictly: true,
emitPath: false,
emitPath: false
},
paginationOptions: {
pageSize: 100,
currentPage: 1,
total: 0,
total: 0
},
category: [],
supplierList: [],
......@@ -340,22 +282,18 @@ export default {
supplierName: '',
selections: [],
skuCategory: [],
generalCategory: [],
generalCategory: []
}
},
created() {
// this.alllist("baseStyleInfo/all_list", "all_list2");
this.getList(1)
this.addcurrencyform2 = JSON.parse(
JSON.stringify(this.addcurrencyform),
)
this.addcurrencyform2 = JSON.parse(JSON.stringify(this.addcurrencyform))
},
computed: {
supplierlist() {
return this.supplierList.filter(
(item) =>
item.name &&
item.name.indexOf(this.supplierName) !== -1,
(item) => item.name && item.name.indexOf(this.supplierName) !== -1
)
},
tableColumns() {
......@@ -384,49 +322,48 @@ export default {
? '#4168FF'
: item.deep === 2
? '#67c23a'
: '',
}}
></span>
: ''
}}></span>
<span>{item.name}</span>
</div>
),
)
},
{
label: '类别英文名',
key: 'enname',
align: 'left',
width: 130,
width: 130
},
{
label: '相关风格',
key: 'styleNames',
align: 'left',
width: 200,
width: 200
},
{
label: 'SKU属性',
key: 'skuPropertyNames',
align: 'left',
width: 200,
width: 200
},
{
label: '一般属性',
key: 'propertyNames',
align: 'left',
},
align: 'left'
}
]
} else {
arr = [
{
label: '风格名称',
key: 'name',
align: 'left',
align: 'left'
},
{
label: '风格编码',
key: 'code',
align: 'left',
},
align: 'left'
}
]
}
return [
......@@ -435,12 +372,12 @@ export default {
label: '排序',
key: 'sort',
align: 'right',
width: 100,
width: 100
},
{
label: '备注信息',
key: 'remark',
align: 'center',
align: 'center'
},
{
label: '相关操作',
......@@ -450,29 +387,21 @@ export default {
width: 100,
render: (item) => (
<div>
<span
class="icon-view icon-edit-view"
title="编辑"
>
<span class="icon-view icon-edit-view" title="编辑">
<i
class="el-icon-edit"
onClick={() => this.addDialog(2, item)}
></i>
onClick={() => this.addDialog(2, item)}></i>
</span>
<span
class="icon-view icon-del-view"
title="删除"
>
<span class="icon-view icon-del-view" title="删除">
<i
class="el-icon-delete-solid"
onClick={() => this.deleteSection(item)}
></i>
onClick={() => this.deleteSection(item)}></i>
</span>
</div>
),
},
)
}
]
},
}
},
// watch: {
// select_tab(val) {
......@@ -486,10 +415,31 @@ export default {
text_join(value) {
if (!value) return ''
return value.join(',')
},
}
},
methods: {
importExcel() {
const input = document.createElement('input')
input.style.display = 'none'
input.type = 'file'
input.click()
input.onchange = async () => {
const form = new FormData()
form.append('importExcel', input.files.length > 0 ? input.files[0] : [])
const res = await axios.post(
this.is_tab === '1'
? 'baseCategoryInfo/importBaseCategoryInfo'
: 'baseStyleInfo/importBaseStyleInfo',
form
)
console.log(res)
if (res.code === 200) {
this.$message.success('导入成功')
this.getList()
}
}
},
onCurrentChange(currentPage) {
this.paginationOptions.currentPage = currentPage
this.getList()
......@@ -502,7 +452,7 @@ export default {
axios
.post('baseCategoryInfo/setDefaultSupplier', {
id: this.currentCateId,
defaultSupplierId: this.supplierId,
defaultSupplierId: this.supplierId
})
.then((res) => {
this.$message.success(res.message)
......@@ -517,14 +467,12 @@ export default {
this.supplierId = ''
axios
.get('supplySupplier/getSupplyByCategory', {
params: { categoryId: item.id },
params: { categoryId: item.id }
})
.then((res) => {
const supplierList = res.data || []
if (supplierList.length === 0) {
return this.$message.warning(
'该分类下暂无供应商',
)
return this.$message.warning('该分类下暂无供应商')
} else {
this.setDefVisivle = true
this.supplierList = supplierList
......@@ -535,15 +483,9 @@ export default {
if (this.all_list2.length > 0) return
this.alllist('baseStyleInfo/all_list', 'all_list2')
if (this.skuCategory.length > 0) return
this.alllist(
'baseProperty/all_list_sku',
'skuCategory',
)
this.alllist('baseProperty/all_list_sku', 'skuCategory')
if (this.generalCategory.length > 0) return
this.alllist(
'baseProperty/all_list_general',
'generalCategory',
)
this.alllist('baseProperty/all_list_general', 'generalCategory')
},
search() {
this.currentPage = 1
......@@ -561,10 +503,7 @@ export default {
addDialog(i, v = null) {
this.getStyle()
if (this.is_tab === '1') {
this.alllist(
'baseCategoryInfo/tree_list',
'all_list',
)
this.alllist('baseCategoryInfo/tree_list', 'all_list')
}
if (i === 2) {
if (v) this.formId = v.id
......@@ -575,7 +514,7 @@ export default {
} else {
this.$nextTick(() => {
this.addcurrencyform = JSON.parse(
JSON.stringify(this.addcurrencyform2),
JSON.stringify(this.addcurrencyform2)
)
})
this.is_title = i
......@@ -604,15 +543,14 @@ export default {
},
getList() {
if (this.is_tab === '2') {
const { pageSize, currentPage } =
this.paginationOptions
const { pageSize, currentPage } = this.paginationOptions
axios
.get('baseStyleInfo/list_page', {
params: {
pageSize: pageSize,
currentPage: currentPage,
currentPage: currentPage
},
baseURL: '/api/manage/rest',
baseURL: '/api/manage/rest'
})
.then((res) => {
if (res.code === 200) {
......@@ -622,76 +560,66 @@ export default {
this.paginationOptions.total = res.data.total
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
dangerouslyUseHTMLString: true
})
}
})
} else {
this.alllist(
'baseCategoryInfo/tree_list',
'sourceData',
)
this.alllist('baseCategoryInfo/tree_list', 'sourceData')
}
},
selectSection() {
const text =
this.is_tab === '1'
? 'baseCategoryInfo'
: 'baseStyleInfo'
const text = this.is_tab === '1' ? 'baseCategoryInfo' : 'baseStyleInfo'
const url = `${text}/get?id=${this.formId}`
axios.get(url, {
baseURL: '/api/manage/rest',
}).then((res) => {
if (res.code === 200) {
const data = res.data
this.addcurrencyform = Object.assign({}, data)
this.is_title = 2
this.dialogVisible = true
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
})
}
})
axios
.get(url, {
baseURL: '/api/manage/rest'
})
.then((res) => {
if (res.code === 200) {
const data = res.data
this.addcurrencyform = Object.assign({}, data)
this.is_title = 2
this.dialogVisible = true
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true
})
}
})
},
upSection() {
const text =
this.is_tab === '1'
? 'baseCategoryInfo'
: 'baseStyleInfo'
const text = this.is_tab === '1' ? 'baseCategoryInfo' : 'baseStyleInfo'
const url = `${text}/update`
axios.post(url, this.addcurrencyform).then((res) => {
if (res.code === 200) {
this.dialogVisible = false
this.$message({
message: '修改成功',
type: 'success',
type: 'success'
})
this.getList(this.currentPage)
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
dangerouslyUseHTMLString: true
})
}
})
},
addSection() {
const text =
this.is_tab === '1'
? 'baseCategoryInfo'
: 'baseStyleInfo'
const text = this.is_tab === '1' ? 'baseCategoryInfo' : 'baseStyleInfo'
const url = `${text}/add`
axios.post(url, this.addcurrencyform).then((res) => {
if (res.code === 200) {
this.dialogVisible = false
this.$message({
message: '添加成功',
type: 'success',
type: 'success'
})
this.getList(this.currentPage)
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
dangerouslyUseHTMLString: true
})
}
})
......@@ -712,19 +640,17 @@ export default {
this.$confirm('确定删除选中的信息?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
type: 'warning'
})
.then(() => {
const text =
this.is_tab === '1'
? 'baseCategoryInfo'
: 'baseStyleInfo'
this.is_tab === '1' ? 'baseCategoryInfo' : 'baseStyleInfo'
const url = `${text}/delete?ids=${ids}`
axios.get(url).then((res) => {
if (res.code === 200) {
this.$message({
type: 'success',
message: '删除成功!',
message: '删除成功!'
})
this.getList(this.currentPage)
}
......@@ -733,24 +659,22 @@ export default {
.catch(() => {})
},
alllist(url, arr) {
axios
.get(url, { baseURL: '/api/manage/rest' })
.then((res) => {
if (res.code === 200) {
this[arr] = res.data
this.$nextTick(() => {
if (this.$refs.addcurrencyform) {
this.$refs.addcurrencyform.clearValidate()
}
})
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
})
}
})
},
},
axios.get(url, { baseURL: '/api/manage/rest' }).then((res) => {
if (res.code === 200) {
this[arr] = res.data
this.$nextTick(() => {
if (this.$refs.addcurrencyform) {
this.$refs.addcurrencyform.clearValidate()
}
})
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true
})
}
})
}
}
}
</script>
<style>
......
......@@ -24,37 +24,27 @@
size="mini"
@submit.native.prevent
v-enter-submit="search"
class="search_form"
>
class="search_form">
<template>
<el-form-item label="名称">
<el-input
v-model="searchForm.name"
placeholder="中文或英文"
clearable
></el-input>
clearable></el-input>
</el-form-item>
<el-form-item label="编码">
<el-input
v-model="searchForm.code"
placeholder="中文或英文"
clearable
></el-input>
clearable></el-input>
</el-form-item>
<el-form-item label="类别" prop="employeeName">
<el-select
v-model="searchForm.cateCode"
clearable
placeholder="请选择"
>
<el-option
label="颜色"
value="Color"
></el-option>
<el-option
label="尺寸"
value="Size"
></el-option>
placeholder="请选择">
<el-option label="颜色" value="Color"></el-option>
<el-option label="尺寸" value="Size"></el-option>
</el-select>
</el-form-item>
......@@ -74,21 +64,19 @@
type="primary"
@click="search()"
icon="el-icon-search"
native-type="submit"
>
native-type="submit">
查询
</el-button>
</el-form-item>
</template>
<el-form-item>
<el-button type="success" @click="addDialog(1)"
>新增</el-button
>
<el-button type="success" @click="addDialog(1)">新增</el-button>
</el-form-item>
<el-form-item>
<el-button type="danger" @click="deleteSection()"
>删除</el-button
>
<el-button type="danger" @click="deleteSection()">删除</el-button>
</el-form-item>
<el-form-item style="margin-bottom: 0px">
<el-button type="primary" @click="importExcel">导入</el-button>
</el-form-item>
</el-form>
<div class="table-wrap" v-loading="loading">
......@@ -98,14 +86,12 @@
:selection="true"
:tableColumns="tableColumns"
@selectionChange="selectionChange"
@currentChange="currentTabFn"
></my-table>
@currentChange="currentTabFn"></my-table>
</div>
<div class="pagination">
<pagination
:setValue="setpaginationOptions"
:options="paginationOptions"
/>
:options="paginationOptions" />
</div>
</div>
......@@ -114,8 +100,7 @@
:close-on-click-modal="false"
:title="is_title == 1 ? '新增' : '编辑'"
:visible.sync="dialogVisible"
width="700px"
>
width="700px">
<el-form
label-position="right"
label-width="100px"
......@@ -123,58 +108,42 @@
:inline="true"
:model="addcurrencyform"
:rules="addrules"
ref="addcurrencyform"
>
ref="addcurrencyform">
<el-form-item label="中文名" prop="cnname" required>
<el-input
style="width: 164px"
v-model="addcurrencyform.cnname"
placeholder="请输入中文名"
></el-input>
placeholder="请输入中文名"></el-input>
</el-form-item>
<el-form-item label="英文名" prop="enname" required>
<el-input
style="width: 164px"
v-model="addcurrencyform.enname"
placeholder="请输入英文名"
></el-input>
placeholder="请输入英文名"></el-input>
</el-form-item>
<el-form-item label="编码" prop="code" required>
<el-input
style="width: 164px"
v-model="addcurrencyform.code"
maxlength="7"
placeholder="请输入编码"
></el-input>
placeholder="请输入编码"></el-input>
</el-form-item>
<el-form-item
label="类别"
prop="cateCode"
required
>
<el-form-item label="类别" prop="cateCode" required>
<el-select
v-model="addcurrencyform.cateCode"
style="width: 164px"
clearable
placeholder="请选择"
>
<el-option
label="颜色"
value="Color"
></el-option>
<el-option
label="尺寸"
value="Size"
></el-option>
placeholder="请选择">
<el-option label="颜色" value="Color"></el-option>
<el-option label="尺寸" value="Size"></el-option>
</el-select>
</el-form-item>
<el-form-item label="排序序号" prop="sort">
<el-input
style="width: 164px"
v-model.number="addcurrencyform.sort"
placeholder="请输入数字"
></el-input>
placeholder="请输入数字"></el-input>
</el-form-item>
<el-form-item label="是否带电池">
<el-select
......@@ -182,13 +151,9 @@
v-model="addcurrencyform.battery"
clearable
value-key=""
placeholder="请选择"
>
placeholder="请选择">
<el-option label="是" :value="true"></el-option>
<el-option
label="否"
:value="false"
></el-option>
<el-option label="否" :value="false"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否液体">
......@@ -197,13 +162,9 @@
v-model="addcurrencyform.liquid"
clearable
value-key=""
placeholder="请选择"
>
placeholder="请选择">
<el-option label="是" :value="true"></el-option>
<el-option
label="否"
:value="false"
></el-option>
<el-option label="否" :value="false"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否刀具">
......@@ -212,44 +173,36 @@
v-model="addcurrencyform.knife"
clearable
value-key=""
placeholder="请选择"
>
placeholder="请选择">
<el-option label="是" :value="true"></el-option>
<el-option
label="否"
:value="false"
></el-option>
<el-option label="否" :value="false"></el-option>
</el-select>
</el-form-item>
<el-form-item label="文字色">
<el-color-picker
style="width: 164px"
v-model="addcurrencyform.fontColor"
size="small"
></el-color-picker>
size="small"></el-color-picker>
</el-form-item>
<el-form-item label="背景色" prop="remark">
<el-color-picker
style="width: 164px"
v-model="addcurrencyform.bgColor"
size="small"
></el-color-picker>
size="small"></el-color-picker>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button
@click="dialogVisible = false"
size="mini"
style="width: 100px"
>
style="width: 100px">
取消
</el-button>
<el-button
type="primary"
@click="addCurrency()"
size="mini"
style="width: 100px"
>
style="width: 100px">
确认
</el-button>
</span>
......@@ -262,7 +215,7 @@ import MyTable from '@/common/components/base/tableView.vue'
export default {
name: 'system_sku-manage',
components: {
MyTable,
MyTable
},
data() {
return {
......@@ -275,7 +228,7 @@ export default {
searchForm: {
cateId: '',
code: '',
name: '',
name: ''
},
addcurrencyform: {
sort: '',
......@@ -284,7 +237,7 @@ export default {
cnname: '',
enname: '',
fontColor: '',
bgColor: '',
bgColor: ''
},
all_list: [],
addcurrencyform2: null,
......@@ -293,11 +246,11 @@ export default {
paginationOptions: {
pageSize: 100,
currentPage: 1,
total: 0,
total: 0
},
defaultProps: {
label: 'name',
},
label: 'name'
}
}
},
computed: {
......@@ -308,7 +261,7 @@ export default {
{ label: '编码', key: 'code' },
{
label: '类别',
key: 'cateName',
key: 'cateName'
},
{ label: '排列序号', key: 'sort', width: 80 },
......@@ -322,10 +275,9 @@ export default {
width: '20px',
height: '20px',
display: 'inline-block',
backgroundColor: item.fontColor,
}}
></span>
),
backgroundColor: item.fontColor
}}></span>
)
},
{
label: '背景色',
......@@ -337,39 +289,30 @@ export default {
width: '20px',
height: '20px',
display: 'inline-block',
backgroundColor: item.bgColor,
}}
></span>
),
backgroundColor: item.bgColor
}}></span>
)
},
{
label: '相关操作',
width: 80,
render: (item) => (
<div>
<span
class="icon-view icon-edit-view"
title="编辑"
>
<span class="icon-view icon-edit-view" title="编辑">
<i
class="el-icon-edit"
onClick={() => this.addDialog(2, item)}
></i>
onClick={() => this.addDialog(2, item)}></i>
</span>
<span
class="icon-view icon-del-view"
title="删除"
>
<span class="icon-view icon-del-view" title="删除">
<i
class="el-icon-delete-solid"
onClick={() => this.deleteSection(item)}
></i>
onClick={() => this.deleteSection(item)}></i>
</span>
</div>
),
},
)
}
]
},
}
// categoryList() {
// const list = [
// {
......@@ -395,9 +338,7 @@ export default {
created() {
this.alllist('baseProperty/all_list')
this.getList(1)
this.addcurrencyform2 = JSON.parse(
JSON.stringify(this.addcurrencyform),
)
this.addcurrencyform2 = JSON.parse(JSON.stringify(this.addcurrencyform))
},
methods: {
......@@ -432,7 +373,7 @@ export default {
} else {
this.$nextTick(() => {
this.addcurrencyform = JSON.parse(
JSON.stringify(this.addcurrencyform2),
JSON.stringify(this.addcurrencyform2)
)
})
}
......@@ -450,6 +391,25 @@ export default {
this.upSection()
}
},
importExcel() {
const input = document.createElement('input')
input.style.display = 'none'
input.type = 'file'
input.click()
input.onchange = async () => {
const form = new FormData()
form.append('importExcel', input.files.length > 0 ? input.files[0] : [])
const res = await axios.post(
'base/propertyValue/importBasePropertyValue',
form
)
console.log(res)
if (res.code === 200) {
this.$message.success('导入成功')
this.getList()
}
}
},
setpaginationOptions(opt) {
for (const key in opt) {
this.paginationOptions[key] = opt[key]
......@@ -458,8 +418,7 @@ export default {
},
// 查询
getList() {
const { pageSize, currentPage } =
this.paginationOptions
const { pageSize, currentPage } = this.paginationOptions
this.loading = true
axios
.get('base/propertyValue/list_page', {
......@@ -467,9 +426,9 @@ export default {
pageSize,
currentPage,
skuProperty: this.skuProperty,
...this.searchForm,
...this.searchForm
},
baseURL: '/api/manage/rest',
baseURL: '/api/manage/rest'
})
.then((res) => {
// eslint-disable-next-line eqeqeq
......@@ -478,7 +437,7 @@ export default {
this.paginationOptions.total = res.data.total
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
dangerouslyUseHTMLString: true
})
}
})
......@@ -504,7 +463,7 @@ export default {
this.dialogVisible = true
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
dangerouslyUseHTMLString: true
})
}
})
......@@ -514,23 +473,21 @@ export default {
const url = 'base/propertyValue/update'
this.$refs.addcurrencyform.validate((valid) => {
if (valid) {
axios
.post(url, this.addcurrencyform)
.then((res) => {
// eslint-disable-next-line eqeqeq
if (res.code == 200) {
this.dialogVisible = false
this.$message({
message: '修改成功',
type: 'success',
})
this.getList(this.currentPage)
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
})
}
})
axios.post(url, this.addcurrencyform).then((res) => {
// eslint-disable-next-line eqeqeq
if (res.code == 200) {
this.dialogVisible = false
this.$message({
message: '修改成功',
type: 'success'
})
this.getList(this.currentPage)
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true
})
}
})
}
})
},
......@@ -539,23 +496,21 @@ export default {
const url = 'base/propertyValue/add'
this.$refs.addcurrencyform.validate((valid) => {
if (valid) {
axios
.post(url, this.addcurrencyform)
.then((res) => {
// eslint-disable-next-line eqeqeq
if (res.code == 200) {
this.dialogVisible = false
this.$message({
message: '添加成功',
type: 'success',
})
this.getList(this.currentPage)
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
})
}
})
axios.post(url, this.addcurrencyform).then((res) => {
// eslint-disable-next-line eqeqeq
if (res.code == 200) {
this.dialogVisible = false
this.$message({
message: '添加成功',
type: 'success'
})
this.getList(this.currentPage)
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true
})
}
})
}
})
},
......@@ -577,7 +532,7 @@ export default {
this.$confirm('确定删除选中的信息?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
type: 'warning'
})
.then(() => {
const url = `base/propertyValue/delete?ids=${ids}`
......@@ -586,7 +541,7 @@ export default {
if (res.code == 200) {
this.$message({
type: 'success',
message: '删除成功!',
message: '删除成功!'
})
this.getList(this.currentPage)
}
......@@ -598,7 +553,7 @@ export default {
alllist(url) {
axios
.get(url, {
baseURL: '/api/manage/rest',
baseURL: '/api/manage/rest'
})
.then((res) => {
// eslint-disable-next-line eqeqeq
......@@ -606,12 +561,12 @@ export default {
this.all_list = res.data
} else {
this.$alert(res.message, '错误提示', {
dangerouslyUseHTMLString: true,
dangerouslyUseHTMLString: true
})
}
})
},
},
}
}
}
</script>
<style scoped>
......
......@@ -38,6 +38,9 @@
<el-form-item>
<el-button type="danger" @click="deleteSection()">删除</el-button>
</el-form-item>
<el-form-item style="margin-bottom: 0px">
<el-button type="primary" @click="importExcel">导入</el-button>
</el-form-item>
</el-form>
<div class="table_wrap">
<my-table
......@@ -368,6 +371,22 @@ export default {
},
methods: {
importExcel() {
const input = document.createElement('input')
input.style.display = 'none'
input.type = 'file'
input.click()
input.onchange = async () => {
const form = new FormData()
form.append('importExcel', input.files.length > 0 ? input.files[0] : [])
const res = await axios.post('baseProperty/importBaseProperty', form)
console.log(res)
if (res.code === 200) {
this.$message.success('导入成功')
this.getList()
}
}
},
async changeDisableStatus(v, item) {
try {
await this.$confirm(
......
......@@ -465,6 +465,20 @@
@click="closeForPendingDialog"
>不受理
</el-button>
<el-button
size="mini"
type="danger"
v-if="statusCode === 'PRE_HANDLING'"
@click="shelveForPendingDialog"
>转至待定
</el-button>
<el-button
size="mini"
type="danger"
v-if="statusCode === 'PENDING'"
@click="turnBackToPending"
>转至待受理
</el-button>
</div>
</div>
</el-dialog>
......@@ -743,7 +757,7 @@
</el-dialog>
<!-- 不受理 -->
<el-dialog
title="不受理"
:title="pendingTitle"
:close-on-click-modal="false"
:visible.sync="pendingVisible"
width="800px"
......@@ -810,6 +824,8 @@ import {
replyTocustomer,
acceptanWorkOrder,
PendingWorkOrder,
ShelveWorkOrder,
TurnBackToPending,
getOrderType,
resume,
pause,
......@@ -1004,6 +1020,8 @@ export default {
imgPreviewUrl: '',
subscript: 0,
imgList: [],
pendingTitle: '',
pendingBtn: 0
}
},
mounted() {
......@@ -1612,26 +1630,76 @@ export default {
this.currentItem = item
},
closeForPendingDialog() {
this.pendingTitle = '不受理'
this.pendingBtn = 7
this.pendingVisible = true
if (this.$refs.pendingForm) {
this.$refs.pendingForm.resetFields()
}
},
shelveForPendingDialog() {
this.pendingTitle = '转至待定'
this.pendingBtn = 9
this.pendingVisible = true
if (this.$refs.pendingForm) {
this.$refs.pendingForm.resetFields()
}
},
turnBackToPending() {
this.pendingBtn = 1
TurnBackToPending({
id: this.detail.id,
...this.pendingForm,
}).then(res => {
if (res.code === 200) {
this.pendingVisible = false
this.detailVisible = false
this.getOrderTree()
this.getlist()
}
})
},
submitPending() {
this.$refs.pendingForm.validate(v => {
if (v) {
try {
PendingWorkOrder({
id: this.detail.id,
...this.pendingForm,
}).then(res => {
if (res.code === 200) {
this.pendingVisible = false
this.detailVisible = false
this.getOrderTree()
this.getlist()
}
})
if (this.pendingBtn === 9) {
ShelveWorkOrder({
id: this.detail.id,
...this.pendingForm,
}).then(res => {
if (res.code === 200) {
this.pendingVisible = false
this.detailVisible = false
this.getOrderTree()
this.getlist()
}
})
} else if (this.pendingBtn === 1) {
TurnBackToPending({
id: this.detail.id,
...this.pendingForm,
}).then(res => {
if (res.code === 200) {
this.pendingVisible = false
this.detailVisible = false
this.getOrderTree()
this.getlist()
}
})
} else {
PendingWorkOrder({
id: this.detail.id,
...this.pendingForm,
}).then(res => {
if (res.code === 200) {
this.pendingVisible = false
this.detailVisible = false
this.getOrderTree()
this.getlist()
}
})
}
} catch (error) {}
}
})
......
......@@ -9,9 +9,7 @@ module.exports = defineConfig({
target: 'http://10.168.31.142:8070',
changeOrigin: true
// 路径重写规则,这里将 /api 开头的请求路径替换为空字符串,即去掉 /api 前缀
}
}
}
})
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment