somewhere
This commit is contained in:
@@ -0,0 +1,286 @@
|
||||
<template>
|
||||
<user-dashboard-container page-class="post" panel-title="ارسال برای گارانتی">
|
||||
<el-alert :title="alertMsg" class="mb-3" type="warning"> </el-alert>
|
||||
<form class="form form_3">
|
||||
<div class="formDB">
|
||||
<!-- <img v-if="transactionDraft.db_name === 'panatech'" src="/assets/img/panatech-small.png" alt="panatech" />
|
||||
<img v-if="transactionDraft.db_name === 'verity'" src="/assets/img/verity-small.png" alt="verity" /> -->
|
||||
<template v-if="transactionDraft.db_name === 'verity'">
|
||||
<i class="fas fa-phone-laptop"></i>
|
||||
<span>لوازم جانبی کامپیوتر و موبایل</span>
|
||||
</template>
|
||||
|
||||
<template v-if="transactionDraft.db_name === 'panatech'">
|
||||
<i class="fas fa-photo-video"></i>
|
||||
<span>لوازم صوتی و تصویری خودرو</span>
|
||||
</template>
|
||||
|
||||
<!-- <hr /> -->
|
||||
</div>
|
||||
<div class="userInfo">
|
||||
<div class="formRow">
|
||||
<label for="customer_name">نام مشتری:</label>
|
||||
<input id="customer_name" type="text" :value="user.first_name + ' ' + user.last_name" disabled />
|
||||
</div>
|
||||
<div class="formRow">
|
||||
<label for="customer_code">کد مشتری:</label>
|
||||
<input id="customer_code" type="text" :value="businessCode" disabled />
|
||||
</div>
|
||||
<div class="formRow">
|
||||
<label for="mobile">شماره موبایل:</label>
|
||||
<input id="mobile" type="text" :value="user.mobile_number" disabled />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="formRow">
|
||||
<label>آدرس:</label>
|
||||
<textarea name="address" rows="5" disabled :value="userAddress"></textarea>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="formRow">
|
||||
<label for="description">توضیحات فرم (اختیاری):</label>
|
||||
<el-tooltip
|
||||
v-model="descriptionTooltip"
|
||||
class="item"
|
||||
effect="dark"
|
||||
content="میتوانید توضیحات را در هر زمان تغییر دهید"
|
||||
placement="top-start"
|
||||
>
|
||||
<textarea
|
||||
id="description"
|
||||
v-model="transactionDraft.description"
|
||||
name="description"
|
||||
placeholder="توضیحات راجع به کالاها را میتوانید اینجا بنویسید"
|
||||
cols="30"
|
||||
rows="10"
|
||||
@blur="updateDescription"
|
||||
></textarea>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="add-list">
|
||||
<h2>لیست کالاهای افزوده شده:</h2>
|
||||
<div class="tableBox">
|
||||
<table class="formItems">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="index">ردیف</th>
|
||||
<th class="itemName">نام کالا</th>
|
||||
<th class="quantity">تعداد</th>
|
||||
<th class="itemSerial">سریال گارانتی</th>
|
||||
<th class="removeBtn">حذف</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr
|
||||
v-for="(item, index) in transactionDraft.items"
|
||||
:key="item.ItemID + index + '_addListItemKey'"
|
||||
:title="getItemName(item.ItemID)"
|
||||
>
|
||||
<td class="index">
|
||||
<span>{{ index + 1 }}</span>
|
||||
</td>
|
||||
<td class="itemName">
|
||||
<span class="singleLineTxt">{{ getItemName(item.ItemID) }}</span>
|
||||
</td>
|
||||
<td class="quantity">
|
||||
<span>{{ item.MjQty }}</span>
|
||||
</td>
|
||||
<td class="itemSerial">
|
||||
<span>{{ item.SerialNo1 || '-' }}</span>
|
||||
</td>
|
||||
<td class="removeBtn">
|
||||
<button class="trashIcon-btn" title="حذف کالا" @click="removeItemFromList(item.SerialNo1, item.ItemID)">
|
||||
<i class="fal fa-trash-alt"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="!transactionDraft.items.length" class="odd">
|
||||
<td class="noItem" colspan="5">
|
||||
<p style="color: #000">هنوز هیچ آیتمی اضافه نکردید.</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="addStuffBtn" @click="stuffModal = true">
|
||||
<td colspan="5">
|
||||
<button>
|
||||
<span>افزودن کالا</span>
|
||||
<i class="far fa-plus"></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<table-notice />
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="btnRow">
|
||||
<button class="btn btn-primary" @click="agentsModal = true">ارسال به آسان سرویس</button>
|
||||
<button class="btn btn-danger" @click="removeDraft">حذف این فرم</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template #body>
|
||||
<AddStuffModal
|
||||
:key="addStuffKey"
|
||||
:show="stuffModal"
|
||||
:db_name="transactionDraft.db_name"
|
||||
@closeModal="closeAddStuff"
|
||||
/>
|
||||
<SelectAgentModal :key="agentsKey" :draft="transactionDraft" :show="agentsModal" @closeModal="closeAgents" />
|
||||
</template>
|
||||
</user-dashboard-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'AccountDraftDetails',
|
||||
layout: 'user',
|
||||
async asyncData({ $axios, params, error }) {
|
||||
try {
|
||||
const transactionDraft = await $axios.get(`/api/user/transactionDraft/${params.draftID}`)
|
||||
return {
|
||||
transactionDraft: transactionDraft.data
|
||||
}
|
||||
} catch (e) {
|
||||
error({ status: 404, message: 'There is a problem here' })
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
transactionDraft: null,
|
||||
validation: {},
|
||||
stuffModal: false,
|
||||
agentsModal: false,
|
||||
addStuffKey: 0,
|
||||
agentsKey: 1,
|
||||
descriptionTooltip: false,
|
||||
alertMsg:
|
||||
'این فرم در پیشنویس ها ذخیره شده و هنوز در پایگاه داده شرکت آسان سرویس ثبت نگردیده. شما میتوانید کالاها را در هر زمان به این فرم اضافه یا از فرم حذف کنید سپس نسبت به ارسال نهایی اقدام کنید.'
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
user() {
|
||||
return this.$auth.user
|
||||
},
|
||||
userAddress() {
|
||||
const user = this.user
|
||||
return user.province_name + '، ' + user.city_name + '، ' + user.address + '،کد پستی: ' + user.postal_code
|
||||
},
|
||||
products() {
|
||||
if (this.transactionDraft.db_name === 'panatech') return this.$store.state.front.panatechProducts
|
||||
else if (this.transactionDraft.db_name === 'verity') return this.$store.state.front.verityProducts
|
||||
else return []
|
||||
},
|
||||
draftID() {
|
||||
return this.$route.params.draftID
|
||||
},
|
||||
businessCode() {
|
||||
const errMsg = 'عدم ثبت در پایگاه داده'
|
||||
if (this.transactionDraft.db_name === 'panatech') return this.user.panatech_businessCode || errMsg
|
||||
if (this.transactionDraft.db_name === 'verity') return this.user.verity_businessCode || errMsg
|
||||
return errMsg
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
setTimeout(() => (this.descriptionTooltip = true), 1000)
|
||||
},
|
||||
methods: {
|
||||
closeAddStuff() {
|
||||
this.stuffModal = false
|
||||
this.addStuffKey = Math.random()
|
||||
},
|
||||
closeAgents() {
|
||||
this.agentsModal = false
|
||||
this.agentsKey = Math.random() + 1
|
||||
},
|
||||
getItemName(id) {
|
||||
return this.products?.filter(item => item.ItemID === id)[0]?.ItemName || 'درحال بارگیری'
|
||||
},
|
||||
removeItemFromList(itemSerial, itemId) {
|
||||
this.$confirm('این مورد حذف شود؟', 'هشدار', {
|
||||
confirmButtonText: 'بله',
|
||||
cancelButtonText: 'لغو',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios
|
||||
.put(`/api/user/transactionDraftItemRemove/${this.draftID}`, { itemId, itemSerial })
|
||||
.then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.data.message
|
||||
})
|
||||
this.$nuxt.refresh()
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: 'مشکلی در انجام عملیات پیش آمده'
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: 'عملیات لغو شد'
|
||||
})
|
||||
})
|
||||
},
|
||||
updateDescription() {
|
||||
const data = { description: this.transactionDraft.description }
|
||||
this.$axios
|
||||
.put(`/api/user/transactionDraft/${this.draftID}`, data)
|
||||
.then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.data.message
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: 'مشکلی در ثبت اطلاعات پیش آمده'
|
||||
})
|
||||
})
|
||||
},
|
||||
removeDraft() {
|
||||
this.$confirm('این فرم از پیشنویس ها حذف شود؟', 'هشدار', {
|
||||
confirmButtonText: 'بله',
|
||||
cancelButtonText: 'لغو',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios
|
||||
.delete(`/api/user/transactionDraft/${this.draftID}`)
|
||||
.then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.data.message
|
||||
})
|
||||
this.$router.push({ name: 'account-drafts' })
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: 'مشکلی در حذف پیشنویس پیش آمده'
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: 'عملیات لغو شد'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,129 @@
|
||||
<template>
|
||||
<user-dashboard-container page-class="drafts" panel-title="لیست پیشنویس ها">
|
||||
<div class="tableBox">
|
||||
<table class="drafts">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="index">ردیف</th>
|
||||
<th class="description">توضیحات</th>
|
||||
<th class="brand">نوع</th>
|
||||
<th class="quantity">تعداد کالاها</th>
|
||||
<th class="details">جزئیات</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<template v-if="transactionDrafts.length">
|
||||
<tr v-for="(item, index) in transactionDrafts" :key="item._id" :title="item.description">
|
||||
<td class="index">
|
||||
<span>{{ index + 1 }}</span>
|
||||
</td>
|
||||
|
||||
<td class="description">
|
||||
<span v-if="item.description" class="singleLineTxt">{{ item.description }}</span>
|
||||
<span v-else style="color: gray">بدون توضیحات</span>
|
||||
</td>
|
||||
|
||||
<td class="brand">
|
||||
<!-- <img src="/assets/img/verity-small.png" alt="verity" v-if="item.db_name === 'verity'" />
|
||||
<img src="/assets/img/panatech-small.png" alt="panatech" v-if="item.db_name === 'panatech'" /> -->
|
||||
<i
|
||||
v-if="item.db_name === 'verity'"
|
||||
class="fas fa-phone-laptop"
|
||||
title="لوازم جانبی کامپیوتر و موبایل"
|
||||
></i>
|
||||
<i v-if="item.db_name === 'panatech'" class="fas fa-photo-video" title="لوازم صوتی و تصویری خودرو"></i>
|
||||
</td>
|
||||
|
||||
<td class="quantity">
|
||||
<span>{{ totalItemsCount(item) }}</span>
|
||||
</td>
|
||||
|
||||
<td class="details">
|
||||
<button class="trashIcon-btn" title="حذف پیشنویس" @click="removeDraft(item._id)">
|
||||
<i class="fal fa-trash-alt"></i>
|
||||
</button>
|
||||
|
||||
<nuxt-link
|
||||
:to="{
|
||||
name: 'account-drafts-draftID',
|
||||
params: {
|
||||
draftID: item._id
|
||||
}
|
||||
}"
|
||||
class="btn btn-primary"
|
||||
>
|
||||
تکمیل فرم
|
||||
</nuxt-link>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
<tr v-else>
|
||||
<td class="noItem">
|
||||
<span>هیچ اطلاعاتی وجود ندارد</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<table-notice />
|
||||
</user-dashboard-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'AccountDraftList',
|
||||
layout: 'user',
|
||||
async asyncData({ $axios, $auth, error }) {
|
||||
try {
|
||||
const transactionDrafts = await $axios.get('/api/user/transactionDrafts')
|
||||
return {
|
||||
transactionDrafts: transactionDrafts.data
|
||||
}
|
||||
} catch (e) {
|
||||
error({ status: 404, message: 'There is a problem here' })
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
transactionDrafts: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
totalItemsCount(draft) {
|
||||
const items = draft.items
|
||||
let count = 0
|
||||
items.forEach(item => (count += item.MjQty))
|
||||
return count
|
||||
},
|
||||
removeDraft(id) {
|
||||
this.$confirm('این فرم از پیشنویس ها حذف شود؟', 'هشدار', {
|
||||
confirmButtonText: 'بله',
|
||||
cancelButtonText: 'لغو',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios
|
||||
.delete(`/api/user/transactionDraft/${id}`)
|
||||
.then(res => {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: res.data.message
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: 'مشکلی در حذف پیشنویس پیش آمده'
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'warning',
|
||||
message: 'عملیات لغو شد'
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user