Commit 9df0c8c2 authored by xiaoman's avatar xiaoman

钱币记录

parent 182a50dd
...@@ -54,6 +54,14 @@ export function deleteCategory(data) { ...@@ -54,6 +54,14 @@ export function deleteCategory(data) {
}) })
} }
export function editDealRecord(data) {
return request({
url: '/bidrecord/update',
method: 'post',
data
})
}
export function getCategory(query) { export function getCategory(query) {
return request({ return request({
url: '/category/getSubCategory', url: '/category/getSubCategory',
......
...@@ -84,7 +84,7 @@ export default { ...@@ -84,7 +84,7 @@ export default {
} }
</script> </script>
<style lang="less" scoped> <style lang="scss" scoped>
.list { .list {
width: 720px; width: 720px;
.select_item { .select_item {
......
...@@ -468,7 +468,7 @@ export default { ...@@ -468,7 +468,7 @@ export default {
} }
</script> </script>
<style lang="less" scoped> <style lang="scss" scoped>
/deep/ .vue-picture-cut_default-menu { /deep/ .vue-picture-cut_default-menu {
height: 0px; height: 0px;
inset: 0px 0px 0px !important; inset: 0px 0px 0px !important;
......
...@@ -4,39 +4,104 @@ ...@@ -4,39 +4,104 @@
<el-button type="primary" size="mini" class="mr10" @click="onBack">返回</el-button> <el-button type="primary" size="mini" class="mr10" @click="onBack">返回</el-button>
<el-button type="danger" size="mini" class="mr10" @click="onAdd">添加记录</el-button> <el-button type="danger" size="mini" class="mr10" @click="onAdd">添加记录</el-button>
</div> </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 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="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"> <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> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="成交价格" prop="price"/> <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"> <template slot-scope="scope">
{{ scope.row.bidtime | filterTime }} {{ scope.row.bidtime | filterTime }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="left" label="操作" class-name="small-padding fixed-width"> <el-table-column align="left" label="操作" class-name="small-padding fixed-width">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
</el-table> </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 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-form-item label="商品图片" prop="icon">
<el-input v-model="dataForm.platform"/> <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>
<el-form-item label="成交价格" prop="price"> <el-form-item label="成交价格" prop="price">
<el-input v-model="dataForm.price"/> <el-input v-model="dataForm.price"/>
</el-form-item> </el-form-item>
<el-form-item label="成交记录id" prop="id"> <el-form-item label="钱币描述" prop="extra">
<el-input v-model="dataForm.id"/> <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>
<el-form-item label="成交时间" prop="bidtime"> <el-form-item label="交易日期" prop="bidtime">
<!-- <el-input v-model="dataForm.bidtime"/> --> <!-- <el-input v-model="dataForm.bidtime"/> -->
<el-date-picker <el-date-picker
v-model="dataForm.bidtime" v-model="dataForm.bidtime"
...@@ -46,31 +111,11 @@ ...@@ -46,31 +111,11 @@
value-format="timestamp" value-format="timestamp"
placeholder="选择日期时间"/> placeholder="选择日期时间"/>
</el-form-item> </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> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button> <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> </div>
</el-dialog> </el-dialog>
...@@ -78,11 +123,17 @@ ...@@ -78,11 +123,17 @@
</template> </template>
<script> <script>
import { getDealRecord, addDealRecord, deleteDealRecord } from '@/api/business/category' import { getDealRecord, addDealRecord, deleteDealRecord, editDealRecord } from '@/api/business/category'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { uploadPath } from '@/api/business/storage' import { uploadPath } from '@/api/business/storage'
import moment from 'moment' import moment from 'moment'
// const validateIcon = (rule, value, callback) => {
// if (!this.dataForm.images.length === 0) {
// callback(new Error('请至少上传一张商品图片'))
// } else {
// callback()
// }
// }
export default { export default {
name: 'Category', name: 'Category',
components: { }, components: { },
...@@ -99,14 +150,36 @@ export default { ...@@ -99,14 +150,36 @@ export default {
return { return {
uploadPath, uploadPath,
dataForm: { dataForm: {
images: [] price: '',
extra: '',
platform: '',
link: '',
bidtime: '',
buyer: '',
images: [],
icon: ''
},
searchForm: {
priceRangeStart: 0,
priceRangeEnd: 0,
dateRange: undefined
}, },
dialogFormVisible: false, dialogFormVisible: false,
dialogStatus: '', dialogStatus: '',
textMap: { textMap: {
create: '创建' create: '创建',
edit: '修改'
}, },
rules: { rules: {
icon: [
{ required: true, validator: (rule, value, callback) => {
if (this.dataForm.images.length === 0) {
callback(new Error('请至少上传一张商品图片'))
} else {
callback()
}
}, message: '请至少上传一张商品图片', trigger: 'change' }
],
price: [ price: [
{ required: true, message: '请输入成交价格', trigger: 'blur' }, { required: true, message: '请输入成交价格', trigger: 'blur' },
{ {
...@@ -114,7 +187,13 @@ export default { ...@@ -114,7 +187,13 @@ export default {
message: 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: [], dataList: [],
rowId: '', rowId: '',
...@@ -123,6 +202,33 @@ export default { ...@@ -123,6 +202,33 @@ export default {
const time = v.getTime() const time = v.getTime()
return time > Date.now() 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 { ...@@ -131,6 +237,15 @@ export default {
return { return {
'X-Dts-Admin-Token': getToken() '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() { created() {
...@@ -142,6 +257,24 @@ export default { ...@@ -142,6 +257,24 @@ export default {
} }
}, },
methods: { 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() { uploadOverrun() {
this.$message({ this.$message({
type: 'error', type: 'error',
...@@ -153,9 +286,9 @@ export default { ...@@ -153,9 +286,9 @@ export default {
}, },
getList() { getList() {
this.listLoading = true this.listLoading = true
const data = { const data = Object.assign({}, {
cid: this.rowId cid: this.rowId
} }, this.searchForm)
getDealRecord(data).then(res => { getDealRecord(data).then(res => {
if (res && res.data && res.data.data) { if (res && res.data && res.data.data) {
this.dataList = res.data.data this.dataList = res.data.data
...@@ -169,12 +302,11 @@ export default { ...@@ -169,12 +302,11 @@ export default {
}) })
}, },
resetForm() { resetForm() {
this.dataForm = { this.dataForm.images = []
images: [] this.$refs['dataForm'] && this.$refs['dataForm'].resetFields()
} this.$refs['goodsUploader'] && this.$refs['goodsUploader'].clearFiles()
}, },
onAdd() { onAdd() {
this.resetForm()
this.dialogStatus = 'create' this.dialogStatus = 'create'
this.dialogFormVisible = true this.dialogFormVisible = true
this.$nextTick(() => { this.$nextTick(() => {
...@@ -224,6 +356,34 @@ export default { ...@@ -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) { handleDelete(row) {
const data = { const data = {
id: row.id 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