Commit 9df0c8c2 authored by xiaoman's avatar xiaoman

钱币记录

parent 182a50dd
......@@ -54,6 +54,14 @@ export function deleteCategory(data) {
})
}
export function editDealRecord(data) {
return request({
url: '/bidrecord/update',
method: 'post',
data
})
}
export function getCategory(query) {
return request({
url: '/category/getSubCategory',
......
......@@ -84,7 +84,7 @@ export default {
}
</script>
<style lang="less" scoped>
<style lang="scss" scoped>
.list {
width: 720px;
.select_item {
......
......@@ -468,7 +468,7 @@ export default {
}
</script>
<style lang="less" scoped>
<style lang="scss" scoped>
/deep/ .vue-picture-cut_default-menu {
height: 0px;
inset: 0px 0px 0px !important;
......
......@@ -4,39 +4,104 @@
<el-button type="primary" size="mini" class="mr10" @click="onBack">返回</el-button>
<el-button type="danger" size="mini" class="mr10" @click="onAdd">添加记录</el-button>
</div>
<!-- <div class="search-line">
</div> -->
<el-form ref="searchForm" :inline="true" :model="searchForm" class="demo-form-inline">
<el-form-item label="价格范围" prop="priceRangeStart">
<el-input-number v-model="searchForm.priceRangeStart" :precision="2" :step="1" controls-position="right" size="small"/>
</el-form-item>
<el-form-item prop="priceRangeEnd">
~
<el-input-number v-model="searchForm.priceRangeEnd" :precision="2" :step="1" controls-position="right" size="small"/>
</el-form-item>
<el-form-item label="交易日期" prop="dateRange">
<el-date-picker
v-model="searchForm.dateRange"
:picker-options="dealPickerOptions"
value-format="timestamp"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right"/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSearchSubmit">查询</el-button>
<el-button @click="resetSearchForm('searchForm')">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="listLoading" :data="dataList" size="small" element-loading-text="正在查询中。。。" border fit highlight-current-row>
<el-table-column align="center" label="ID" prop="id"/>
<el-table-column align="center" label="购买平台" prop="platform"/>
<el-table-column align="center" label="图片" width="120px">
<el-table-column align="center" label="商品图片" width="120px">
<template slot-scope="scope">
<img v-for="(item,index) in scope.row.images" :src="item" :key="index" class="row-img">
<img v-if="scope.row.images.length>0" :src="scope.row.images[0]" class="row-img">
<!-- <img v-for="(item,index) in scope.row.images" :src="item" :key="index" class="row-img"> -->
</template>
</el-table-column>
<el-table-column align="center" label="成交价格" prop="price"/>
<el-table-column align="center" label="成交时间" prop="bidtime">
<el-table-column align="center" label="钱币描述" prop="extra"/>
<el-table-column align="center" label="成交平台" prop="platform"/>
<el-table-column align="center" label="链接地址" prop="link"/>
<el-table-column align="center" label="交易日期" prop="bidtime">
<template slot-scope="scope">
{{ scope.row.bidtime | filterTime }}
</template>
</el-table-column>
<el-table-column align="center" label="更新时间" prop="bidtime">
<template slot-scope="scope">
{{ scope.row.bidtime | filterTime }}
</template>
</el-table-column>
<el-table-column align="left" label="操作" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button v-permission="['POST /admin/category/delete']" type="text" size="medium" @click="handleDelete(scope.row)">删除</el-button>
<el-button v-permission="['POST /admin/category/edit']" type="primary" size="small" @click="handleOpenDialog(scope.row)">编辑</el-button>
<el-button v-permission="['POST /admin/category/delete']" type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 添加或修改对话框 -->
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="600px">
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="600px" @close="resetForm()">
<el-form ref="dataForm" :rules="rules" :model="dataForm" status-icon label-position="left" label-width="100px" style="width: 400px; margin-left:50px;">
<el-form-item label="购买平台" prop="platform">
<el-input v-model="dataForm.platform"/>
<el-form-item label="商品图片" prop="icon">
<el-upload
ref="goodsUploader"
:headers="headers"
:action="uploadPath"
:show-file-list="true"
:file-list="fileList"
:on-success="uploadIconUrl"
:on-remove="handleRemove"
:on-exceed="uploadOverrun"
:multiple="true"
:limit="5"
style="width:400px"
list-type="picture-card"
class="avatar-uploader"
accept=".jpg,.jpeg,.png,.gif">
<!-- <div v-if="dataForm.images && dataForm.images.length" class="flex f-ai-c f-fw-w" style="width:420px">
<img v-for="(item,index) in dataForm.images" :src="item" :key="index" class="avatar">
</div> -->
<i class="el-icon-plus avatar-uploader-icon"/>
</el-upload>
</el-form-item>
<el-form-item label="成交价格" prop="price">
<el-input v-model="dataForm.price"/>
</el-form-item>
<el-form-item label="成交记录id" prop="id">
<el-input v-model="dataForm.id"/>
<el-form-item label="钱币描述" prop="extra">
<el-input v-model="dataForm.extra"/>
</el-form-item>
<el-form-item label="购买人" prop="buyer">
<el-input v-model="dataForm.buyer"/>
</el-form-item>
<el-form-item label="成交平台" prop="platform">
<el-input v-model="dataForm.platform"/>
</el-form-item>
<el-form-item label="链接地址" prop="link">
<el-input v-model="dataForm.link"/>
</el-form-item>
<el-form-item label="成交时间" prop="bidtime">
<el-form-item label="交易日期" prop="bidtime">
<!-- <el-input v-model="dataForm.bidtime"/> -->
<el-date-picker
v-model="dataForm.bidtime"
......@@ -46,31 +111,11 @@
value-format="timestamp"
placeholder="选择日期时间"/>
</el-form-item>
<el-form-item label="购买人" prop="buyer">
<el-input v-model="dataForm.buyer"/>
</el-form-item>
<el-form-item label="图片" prop="icon">
<el-upload
:headers="headers"
:action="uploadPath"
:show-file-list="false"
:on-success="uploadIconUrl"
:on-remove="handleRemove"
:on-exceed="uploadOverrun"
:multiple="true"
:limit="5"
class="avatar-uploader"
accept=".jpg,.jpeg,.png,.gif">
<div v-if="dataForm.images && dataForm.images.length" class="flex f-ai-c f-fw-w" style="width:420px">
<img v-for="(item,index) in dataForm.images" :src="item" :key="index" class="avatar">
</div>
<i v-else class="el-icon-plus avatar-uploader-icon"/>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button>
<el-button v-if="dialogStatus=='create'" type="primary" @click="createData">确定</el-button>
<el-button type="primary" @click="handleOk(dialogStatus)">确定</el-button>
</div>
</el-dialog>
......@@ -78,11 +123,17 @@
</template>
<script>
import { getDealRecord, addDealRecord, deleteDealRecord } from '@/api/business/category'
import { getDealRecord, addDealRecord, deleteDealRecord, editDealRecord } from '@/api/business/category'
import { getToken } from '@/utils/auth'
import { uploadPath } from '@/api/business/storage'
import moment from 'moment'
// const validateIcon = (rule, value, callback) => {
// if (!this.dataForm.images.length === 0) {
// callback(new Error('请至少上传一张商品图片'))
// } else {
// callback()
// }
// }
export default {
name: 'Category',
components: { },
......@@ -99,14 +150,36 @@ export default {
return {
uploadPath,
dataForm: {
images: []
price: '',
extra: '',
platform: '',
link: '',
bidtime: '',
buyer: '',
images: [],
icon: ''
},
searchForm: {
priceRangeStart: 0,
priceRangeEnd: 0,
dateRange: undefined
},
dialogFormVisible: false,
dialogStatus: '',
textMap: {
create: '创建'
create: '创建',
edit: '修改'
},
rules: {
icon: [
{ required: true, validator: (rule, value, callback) => {
if (this.dataForm.images.length === 0) {
callback(new Error('请至少上传一张商品图片'))
} else {
callback()
}
}, message: '请至少上传一张商品图片', trigger: 'change' }
],
price: [
{ required: true, message: '请输入成交价格', trigger: 'blur' },
{
......@@ -114,7 +187,13 @@ export default {
message:
'格式不正确,请输入正整数!'
}],
bidtime: [{ required: true, message: '请输入成交时间', trigger: 'blur' }]
bidtime: [{ required: true, message: '请输入交易时间', trigger: 'blur' }],
platform: [
{ required: true, message: '请输入成交平台', trigger: 'blur' }
],
link: [
{ required: true, message: '请输入链接地址', trigger: 'blur' }
]
},
dataList: [],
rowId: '',
......@@ -123,6 +202,33 @@ export default {
const time = v.getTime()
return time > Date.now()
}
},
dealPickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', [start, end])
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
picker.$emit('pick', [start, end])
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
picker.$emit('pick', [start, end])
}
}]
}
}
},
......@@ -131,6 +237,15 @@ export default {
return {
'X-Dts-Admin-Token': getToken()
}
},
fileList() {
if (!this.dataForm.images) return []
return this.dataForm.images.map(function(item, index) {
return {
name: `${index}.jpg`,
url: item
}
})
}
},
created() {
......@@ -142,6 +257,24 @@ export default {
}
},
methods: {
handleOk(state) {
switch (state) {
case 'create':
this.createData()
break
case 'edit':
this.handleEdit()
break
default:
throw new Error('未定义的state参数')
}
},
onSearchSubmit() {
this.getList()
},
resetSearchForm(formName) {
this.$refs[formName].resetFields()
},
uploadOverrun() {
this.$message({
type: 'error',
......@@ -153,9 +286,9 @@ export default {
},
getList() {
this.listLoading = true
const data = {
const data = Object.assign({}, {
cid: this.rowId
}
}, this.searchForm)
getDealRecord(data).then(res => {
if (res && res.data && res.data.data) {
this.dataList = res.data.data
......@@ -169,12 +302,11 @@ export default {
})
},
resetForm() {
this.dataForm = {
images: []
}
this.dataForm.images = []
this.$refs['dataForm'] && this.$refs['dataForm'].resetFields()
this.$refs['goodsUploader'] && this.$refs['goodsUploader'].clearFiles()
},
onAdd() {
this.resetForm()
this.dialogStatus = 'create'
this.dialogFormVisible = true
this.$nextTick(() => {
......@@ -224,6 +356,34 @@ export default {
}
}
},
handleOpenDialog(row) {
this.dialogStatus = 'edit'
this.dialogFormVisible = true
Object.assign(this.dataForm, row)
},
handleEdit() {
this.$refs['dataForm'].validate(valid => {
if (valid) {
const data = Object.assign({
cid: this.rowId - 0
}, this.dataForm)
data.bidtime = data.bidtime / 1000
data.price = data.price - 0
data.id = data.id - 0
editDealRecord(data).then((res) => {
this.dialogStatus = ''
this.dialogFormVisible = false
this.getList()
}).catch((err) => {
if (err && err.data && err.data.code === 1001 && err.data.data) {
this.dialogStatus = ''
this.dialogFormVisible = false
this.getList()
}
})
}
})
},
handleDelete(row) {
const data = {
id: row.id
......
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